JSONArrayTest.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. package org.json.simple;
  2. import java.io.IOException;
  3. import java.io.StringWriter;
  4. import java.util.ArrayList;
  5. import java.util.HashSet;
  6. import org.json.simple.parser.JSONParser;
  7. import org.json.simple.parser.ParseException;
  8. import junit.framework.TestCase;
  9. public class JSONArrayTest extends TestCase {
  10. public void testJSONArray() {
  11. final JSONArray jsonArray = new JSONArray();
  12. assertEquals("[]", jsonArray.toJSONString());
  13. }
  14. public void testJSONArrayCollection() {
  15. final ArrayList testList = new ArrayList();
  16. testList.add("First item");
  17. testList.add("Second item");
  18. final JSONArray jsonArray = new JSONArray(testList);
  19. assertEquals("[\"First item\",\"Second item\"]", jsonArray.toJSONString());
  20. }
  21. public void testWriteJSONStringCollectionWriter() throws IOException, ParseException {
  22. final HashSet testSet = new HashSet();
  23. testSet.add("First item");
  24. testSet.add("Second item");
  25. final JSONArray jsonArray = new JSONArray(testSet);
  26. final StringWriter writer = new StringWriter();
  27. jsonArray.writeJSONString(writer);
  28. final JSONParser parser = new JSONParser();
  29. final JSONArray parsedArray = (JSONArray)parser.parse(writer.toString());
  30. assertTrue(parsedArray.containsAll(jsonArray));
  31. assertTrue(jsonArray.containsAll(parsedArray));
  32. assertEquals(2, jsonArray.size());
  33. }
  34. public void testToJSONStringCollection() throws ParseException {
  35. final HashSet testSet = new HashSet();
  36. testSet.add("First item");
  37. testSet.add("Second item");
  38. final JSONArray jsonArray = new JSONArray(testSet);
  39. final JSONParser parser = new JSONParser();
  40. final JSONArray parsedArray = (JSONArray)parser.parse(jsonArray.toJSONString());
  41. assertTrue(parsedArray.containsAll(jsonArray));
  42. assertTrue(jsonArray.containsAll(parsedArray));
  43. assertEquals(2, jsonArray.size());
  44. }
  45. public void testByteArrayToString() throws IOException {
  46. assertEquals("null", JSONArray.toJSONString((byte[])null));
  47. assertEquals("[]", JSONArray.toJSONString(new byte[0]));
  48. assertEquals("[12]", JSONArray.toJSONString(new byte[] { 12 }));
  49. assertEquals("[-7,22,86,-99]", JSONArray.toJSONString(new byte[] { -7, 22, 86, -99 }));
  50. StringWriter writer;
  51. writer = new StringWriter();
  52. JSONArray.writeJSONString((byte[])null, writer);
  53. assertEquals("null", writer.toString());
  54. writer = new StringWriter();
  55. JSONArray.writeJSONString(new byte[0], writer);
  56. assertEquals("[]", writer.toString());
  57. writer = new StringWriter();
  58. JSONArray.writeJSONString(new byte[] { 12 }, writer);
  59. assertEquals("[12]", writer.toString());
  60. writer = new StringWriter();
  61. JSONArray.writeJSONString(new byte[] { -7, 22, 86, -99 }, writer);
  62. assertEquals("[-7,22,86,-99]", writer.toString());
  63. }
  64. public void testShortArrayToString() throws IOException {
  65. assertEquals("null", JSONArray.toJSONString((short[])null));
  66. assertEquals("[]", JSONArray.toJSONString(new short[0]));
  67. assertEquals("[12]", JSONArray.toJSONString(new short[] { 12 }));
  68. assertEquals("[-7,22,86,-99]", JSONArray.toJSONString(new short[] { -7, 22, 86, -99 }));
  69. StringWriter writer;
  70. writer = new StringWriter();
  71. JSONArray.writeJSONString((short[])null, writer);
  72. assertEquals("null", writer.toString());
  73. writer = new StringWriter();
  74. JSONArray.writeJSONString(new short[0], writer);
  75. assertEquals("[]", writer.toString());
  76. writer = new StringWriter();
  77. JSONArray.writeJSONString(new short[] { 12 }, writer);
  78. assertEquals("[12]", writer.toString());
  79. writer = new StringWriter();
  80. JSONArray.writeJSONString(new short[] { -7, 22, 86, -99 }, writer);
  81. assertEquals("[-7,22,86,-99]", writer.toString());
  82. }
  83. public void testIntArrayToString() throws IOException {
  84. assertEquals("null", JSONArray.toJSONString((int[])null));
  85. assertEquals("[]", JSONArray.toJSONString(new int[0]));
  86. assertEquals("[12]", JSONArray.toJSONString(new int[] { 12 }));
  87. assertEquals("[-7,22,86,-99]", JSONArray.toJSONString(new int[] { -7, 22, 86, -99 }));
  88. StringWriter writer;
  89. writer = new StringWriter();
  90. JSONArray.writeJSONString((int[])null, writer);
  91. assertEquals("null", writer.toString());
  92. writer = new StringWriter();
  93. JSONArray.writeJSONString(new int[0], writer);
  94. assertEquals("[]", writer.toString());
  95. writer = new StringWriter();
  96. JSONArray.writeJSONString(new int[] { 12 }, writer);
  97. assertEquals("[12]", writer.toString());
  98. writer = new StringWriter();
  99. JSONArray.writeJSONString(new int[] { -7, 22, 86, -99 }, writer);
  100. assertEquals("[-7,22,86,-99]", writer.toString());
  101. }
  102. public void testLongArrayToString() throws IOException {
  103. assertEquals("null", JSONArray.toJSONString((long[])null));
  104. assertEquals("[]", JSONArray.toJSONString(new long[0]));
  105. assertEquals("[12]", JSONArray.toJSONString(new long[] { 12 }));
  106. assertEquals("[-7,22,9223372036854775807,-99]", JSONArray.toJSONString(new long[] { -7, 22, 9223372036854775807L, -99 }));
  107. StringWriter writer;
  108. writer = new StringWriter();
  109. JSONArray.writeJSONString((long[])null, writer);
  110. assertEquals("null", writer.toString());
  111. writer = new StringWriter();
  112. JSONArray.writeJSONString(new long[0], writer);
  113. assertEquals("[]", writer.toString());
  114. writer = new StringWriter();
  115. JSONArray.writeJSONString(new long[] { 12 }, writer);
  116. assertEquals("[12]", writer.toString());
  117. writer = new StringWriter();
  118. JSONArray.writeJSONString(new long[] { -7, 22, 86, -99 }, writer);
  119. assertEquals("[-7,22,86,-99]", writer.toString());
  120. }
  121. public void testFloatArrayToString() throws IOException {
  122. assertEquals("null", JSONArray.toJSONString((float[])null));
  123. assertEquals("[]", JSONArray.toJSONString(new float[0]));
  124. assertEquals("[12.8]", JSONArray.toJSONString(new float[] { 12.8f }));
  125. assertEquals("[-7.1,22.234,86.7,-99.02]", JSONArray.toJSONString(new float[] { -7.1f, 22.234f, 86.7f, -99.02f }));
  126. StringWriter writer;
  127. writer = new StringWriter();
  128. JSONArray.writeJSONString((float[])null, writer);
  129. assertEquals("null", writer.toString());
  130. writer = new StringWriter();
  131. JSONArray.writeJSONString(new float[0], writer);
  132. assertEquals("[]", writer.toString());
  133. writer = new StringWriter();
  134. JSONArray.writeJSONString(new float[] { 12.8f }, writer);
  135. assertEquals("[12.8]", writer.toString());
  136. writer = new StringWriter();
  137. JSONArray.writeJSONString(new float[] { -7.1f, 22.234f, 86.7f, -99.02f }, writer);
  138. assertEquals("[-7.1,22.234,86.7,-99.02]", writer.toString());
  139. }
  140. public void testDoubleArrayToString() throws IOException {
  141. assertEquals("null", JSONArray.toJSONString((double[])null));
  142. assertEquals("[]", JSONArray.toJSONString(new double[0]));
  143. assertEquals("[12.8]", JSONArray.toJSONString(new double[] { 12.8 }));
  144. assertEquals("[-7.1,22.234,86.7,-99.02]", JSONArray.toJSONString(new double[] { -7.1, 22.234, 86.7, -99.02 }));
  145. StringWriter writer;
  146. writer = new StringWriter();
  147. JSONArray.writeJSONString((double[])null, writer);
  148. assertEquals("null", writer.toString());
  149. writer = new StringWriter();
  150. JSONArray.writeJSONString(new double[0], writer);
  151. assertEquals("[]", writer.toString());
  152. writer = new StringWriter();
  153. JSONArray.writeJSONString(new double[] { 12.8 }, writer);
  154. assertEquals("[12.8]", writer.toString());
  155. writer = new StringWriter();
  156. JSONArray.writeJSONString(new double[] { -7.1, 22.234, 86.7, -99.02 }, writer);
  157. assertEquals("[-7.1,22.234,86.7,-99.02]", writer.toString());
  158. }
  159. public void testBooleanArrayToString() throws IOException {
  160. assertEquals("null", JSONArray.toJSONString((boolean[])null));
  161. assertEquals("[]", JSONArray.toJSONString(new boolean[0]));
  162. assertEquals("[true]", JSONArray.toJSONString(new boolean[] { true }));
  163. assertEquals("[true,false,true]", JSONArray.toJSONString(new boolean[] { true, false, true }));
  164. StringWriter writer;
  165. writer = new StringWriter();
  166. JSONArray.writeJSONString((boolean[])null, writer);
  167. assertEquals("null", writer.toString());
  168. writer = new StringWriter();
  169. JSONArray.writeJSONString(new boolean[0], writer);
  170. assertEquals("[]", writer.toString());
  171. writer = new StringWriter();
  172. JSONArray.writeJSONString(new boolean[] { true }, writer);
  173. assertEquals("[true]", writer.toString());
  174. writer = new StringWriter();
  175. JSONArray.writeJSONString(new boolean[] { true, false, true }, writer);
  176. assertEquals("[true,false,true]", writer.toString());
  177. }
  178. public void testCharArrayToString() throws IOException {
  179. assertEquals("null", JSONArray.toJSONString((char[])null));
  180. assertEquals("[]", JSONArray.toJSONString(new char[0]));
  181. assertEquals("[\"a\"]", JSONArray.toJSONString(new char[] { 'a' }));
  182. assertEquals("[\"a\",\"b\",\"c\"]", JSONArray.toJSONString(new char[] { 'a', 'b', 'c' }));
  183. StringWriter writer;
  184. writer = new StringWriter();
  185. JSONArray.writeJSONString((char[])null, writer);
  186. assertEquals("null", writer.toString());
  187. writer = new StringWriter();
  188. JSONArray.writeJSONString(new char[0], writer);
  189. assertEquals("[]", writer.toString());
  190. writer = new StringWriter();
  191. JSONArray.writeJSONString(new char[] { 'a' }, writer);
  192. assertEquals("[\"a\"]", writer.toString());
  193. writer = new StringWriter();
  194. JSONArray.writeJSONString(new char[] { 'a', 'b', 'c' }, writer);
  195. assertEquals("[\"a\",\"b\",\"c\"]", writer.toString());
  196. }
  197. public void testObjectArrayToString() throws IOException {
  198. assertEquals("null", JSONArray.toJSONString((Object[])null));
  199. assertEquals("[]", JSONArray.toJSONString(new Object[0]));
  200. assertEquals("[\"Hello\"]", JSONArray.toJSONString(new Object[] { "Hello" }));
  201. assertEquals("[\"Hello\",12,[1,2,3]]", JSONArray.toJSONString(new Object[] { "Hello", new Integer(12), new int[] { 1, 2, 3 } }));
  202. StringWriter writer;
  203. writer = new StringWriter();
  204. JSONArray.writeJSONString((Object[])null, writer);
  205. assertEquals("null", writer.toString());
  206. writer = new StringWriter();
  207. JSONArray.writeJSONString(new Object[0], writer);
  208. assertEquals("[]", writer.toString());
  209. writer = new StringWriter();
  210. JSONArray.writeJSONString(new Object[] { "Hello" }, writer);
  211. assertEquals("[\"Hello\"]", writer.toString());
  212. writer = new StringWriter();
  213. JSONArray.writeJSONString(new Object[] { "Hello", new Integer(12), new int[] { 1, 2, 3} }, writer);
  214. assertEquals("[\"Hello\",12,[1,2,3]]", writer.toString());
  215. }
  216. }