package com.alibaba.json.bvt.bug; import junit.framework.TestCase; import org.junit.Assert; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.parser.Feature; public class Issue248_orderedField extends TestCase { public void test_0() throws Exception { String text = "{\"b\":\"b\",\"d\":\"d\",\"c\":\"c\",\"a\":\"a\"}"; JSONObject object = JSON.parseObject(text, Feature.OrderedField); System.out.println(object); Assert.assertEquals("b", object.keySet().toArray()[0]); Assert.assertEquals("d", object.keySet().toArray()[1]); Assert.assertEquals("c", object.keySet().toArray()[2]); Assert.assertEquals("a", object.keySet().toArray()[3]); } public void test_1() throws Exception { String text = "{\"a\":\"a\",\"b\":\"b\",\"c\":\"c\",\"d\":\"d\"}"; System.out.println(JSON.parseObject(text)); JSONObject object = JSON.parseObject(text, Feature.OrderedField); System.out.println(object); Assert.assertEquals("a", object.keySet().toArray()[0]); Assert.assertEquals("b", object.keySet().toArray()[1]); Assert.assertEquals("c", object.keySet().toArray()[2]); Assert.assertEquals("d", object.keySet().toArray()[3]); } public void test_2() throws Exception { String text = "{\"k1\":\"v1\",\"k3\":\"v3\",\"k2\":\"v2\",\"map\":{\"k1\":\"v1\",\"k3\":\"v3\",\"k2\":\"v2\",\"map\":{\"k1\":\"v1\",\"k3\":\"v3\",\"k2\":\"v2\"}}}"; System.out.println(JSON.parseObject(text)); JSONObject object = JSON.parseObject(text, Feature.OrderedField); System.out.println(object); Assert.assertEquals("k1", object.keySet().toArray()[0]); Assert.assertEquals("k3", object.keySet().toArray()[1]); Assert.assertEquals("k2", object.keySet().toArray()[2]); Assert.assertEquals("map", object.keySet().toArray()[3]); Assert.assertEquals("k1", object.getJSONObject("map").keySet().toArray()[0]); Assert.assertEquals("k3", object.getJSONObject("map").keySet().toArray()[1]); Assert.assertEquals("k2", object.getJSONObject("map").keySet().toArray()[2]); Assert.assertEquals("map", object.getJSONObject("map").keySet().toArray()[3]); Assert.assertEquals("k1", object.getJSONObject("map").getJSONObject("map").keySet().toArray()[0]); Assert.assertEquals("k3", object.getJSONObject("map").getJSONObject("map").keySet().toArray()[1]); Assert.assertEquals("k2", object.getJSONObject("map").getJSONObject("map").keySet().toArray()[2]); } public void test_3() throws Exception { String text = "{\"k1\":\"v1\",\"k3\":\"v3\",\"k2\":\"v2\",\"list\":[\"v1\",\"v3\",\"v2\",{\"map\":{\"k1\":\"v1\",\"k3\":\"v3\",\"k2\":\"v2\"}}]}"; System.out.println(JSON.parseObject(text)); JSONObject object = JSON.parseObject(text, Feature.OrderedField); System.out.println(object); Assert.assertEquals("k1", object.keySet().toArray()[0]); Assert.assertEquals("k3", object.keySet().toArray()[1]); Assert.assertEquals("k2", object.keySet().toArray()[2]); Assert.assertEquals("list", object.keySet().toArray()[3]); Assert.assertEquals("k1", object.getJSONArray("list").getJSONObject(3).getJSONObject("map").keySet().toArray()[0]); Assert.assertEquals("k3", object.getJSONArray("list").getJSONObject(3).getJSONObject("map").keySet().toArray()[1]); Assert.assertEquals("k2", object.getJSONArray("list").getJSONObject(3).getJSONObject("map").keySet().toArray()[2]); } }