/src/test/java/com/alibaba/json/bvt/bug/Issue248_orderedField.java

https://github.com/alibaba/fastjson · Java · 81 lines · 60 code · 21 blank · 0 comment · 0 complexity · 9937639c57736ffc6627d599bf22ad6e MD5 · raw file

  1. package com.alibaba.json.bvt.bug;
  2. import junit.framework.TestCase;
  3. import org.junit.Assert;
  4. import com.alibaba.fastjson.JSON;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.alibaba.fastjson.parser.Feature;
  7. public class Issue248_orderedField extends TestCase {
  8. public void test_0() throws Exception {
  9. String text = "{\"b\":\"b\",\"d\":\"d\",\"c\":\"c\",\"a\":\"a\"}";
  10. JSONObject object = JSON.parseObject(text, Feature.OrderedField);
  11. System.out.println(object);
  12. Assert.assertEquals("b", object.keySet().toArray()[0]);
  13. Assert.assertEquals("d", object.keySet().toArray()[1]);
  14. Assert.assertEquals("c", object.keySet().toArray()[2]);
  15. Assert.assertEquals("a", object.keySet().toArray()[3]);
  16. }
  17. public void test_1() throws Exception {
  18. String text = "{\"a\":\"a\",\"b\":\"b\",\"c\":\"c\",\"d\":\"d\"}";
  19. System.out.println(JSON.parseObject(text));
  20. JSONObject object = JSON.parseObject(text, Feature.OrderedField);
  21. System.out.println(object);
  22. Assert.assertEquals("a", object.keySet().toArray()[0]);
  23. Assert.assertEquals("b", object.keySet().toArray()[1]);
  24. Assert.assertEquals("c", object.keySet().toArray()[2]);
  25. Assert.assertEquals("d", object.keySet().toArray()[3]);
  26. }
  27. public void test_2() throws Exception {
  28. String text = "{\"k1\":\"v1\",\"k3\":\"v3\",\"k2\":\"v2\",\"map\":{\"k1\":\"v1\",\"k3\":\"v3\",\"k2\":\"v2\",\"map\":{\"k1\":\"v1\",\"k3\":\"v3\",\"k2\":\"v2\"}}}";
  29. System.out.println(JSON.parseObject(text));
  30. JSONObject object = JSON.parseObject(text, Feature.OrderedField);
  31. System.out.println(object);
  32. Assert.assertEquals("k1", object.keySet().toArray()[0]);
  33. Assert.assertEquals("k3", object.keySet().toArray()[1]);
  34. Assert.assertEquals("k2", object.keySet().toArray()[2]);
  35. Assert.assertEquals("map", object.keySet().toArray()[3]);
  36. Assert.assertEquals("k1", object.getJSONObject("map").keySet().toArray()[0]);
  37. Assert.assertEquals("k3", object.getJSONObject("map").keySet().toArray()[1]);
  38. Assert.assertEquals("k2", object.getJSONObject("map").keySet().toArray()[2]);
  39. Assert.assertEquals("map", object.getJSONObject("map").keySet().toArray()[3]);
  40. Assert.assertEquals("k1", object.getJSONObject("map").getJSONObject("map").keySet().toArray()[0]);
  41. Assert.assertEquals("k3", object.getJSONObject("map").getJSONObject("map").keySet().toArray()[1]);
  42. Assert.assertEquals("k2", object.getJSONObject("map").getJSONObject("map").keySet().toArray()[2]);
  43. }
  44. public void test_3() throws Exception {
  45. String text = "{\"k1\":\"v1\",\"k3\":\"v3\",\"k2\":\"v2\",\"list\":[\"v1\",\"v3\",\"v2\",{\"map\":{\"k1\":\"v1\",\"k3\":\"v3\",\"k2\":\"v2\"}}]}";
  46. System.out.println(JSON.parseObject(text));
  47. JSONObject object = JSON.parseObject(text, Feature.OrderedField);
  48. System.out.println(object);
  49. Assert.assertEquals("k1", object.keySet().toArray()[0]);
  50. Assert.assertEquals("k3", object.keySet().toArray()[1]);
  51. Assert.assertEquals("k2", object.keySet().toArray()[2]);
  52. Assert.assertEquals("list", object.keySet().toArray()[3]);
  53. Assert.assertEquals("k1",
  54. object.getJSONArray("list").getJSONObject(3).getJSONObject("map").keySet().toArray()[0]);
  55. Assert.assertEquals("k3",
  56. object.getJSONArray("list").getJSONObject(3).getJSONObject("map").keySet().toArray()[1]);
  57. Assert.assertEquals("k2",
  58. object.getJSONArray("list").getJSONObject(3).getJSONObject("map").keySet().toArray()[2]);
  59. }
  60. }