org.json&的意外json结果org.json.simple

时间:2014-11-12 01:59:01

标签: java json org.json

遇到问题

  1. org.json:缺少空值
  2. org.json.simple:Object []无法正确解析
  3. 预期结果:

      

    [NULL,真实,123,123.456,""" 123asd' \" / \" [空],[TRUE],[123] [123.456],[""],[" 123asd' \" / \"],[空],[TRUE],[123], [123.456],[""],[" 123asd' \" / \&#34],{" 0":空}, {" 0":真},{" 0" 123},{" 0":123.456},{" 0":& #34;"},{" 0":" 123asd' \" / \"}]

    org.json的实际结果:缺少空值

      

    [NULL,真实,123,123.456,""" 123asd' \" / \" [空],[TRUE],[123] [123.456],[""],[" 123asd' \" / \"],[空],[TRUE],[123], [123.456],[""],[" 123asd' \" / \&#34],{},{" 0&#34 ;:真},{" 0" 123},{" 0":123.456},{" 0":""},{ " 0":" 123asd' \" / \"}]

    org.json.sample的实际结果:对象[]无法正确显示

      

    [NULL,真实,123,123.456,""" 123asd' \" / \",的 [Ljava.lang.Object; @ 20ad9418,[Ljava.lang.Object; @ 31cefde0,[Ljava.lang.Object; @ 439f5b3d,[Ljava.lang.Object; @ 1d56ce6a,[Ljava.lang.Object; @ 5197848c,[Ljava.lang.Object; @ 17f052a3 下,[空],[TRUE],[123],[123.456],[""],[" 123asd' \" / \& #34],{" 0":空},{" 0":真},{" 0" 123},{" 0& #34;:123.456},{" 0":""},{" 0":" 123asd' \" / \"}]

    import java.util.LinkedHashMap;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Map;
    import org.json.JSONArray;
    import org.json.simple.JSONValue;
    
    public class Main {
    
        public static void main(String[] args) {
            Map map = new LinkedHashMap();
            map.put(map.size(), null);
            map.put(map.size(), true);
            map.put(map.size(), 123);
            map.put(map.size(), 123.0);
            map.put(map.size(), 123.456);
            map.put(map.size(), "");
            map.put(map.size(), "123asd'\"/\\");
            map.put(map.size(), new Object[]{null});
            map.put(map.size(), new Object[]{true});
            map.put(map.size(), new Object[]{123});
            map.put(map.size(), new Object[]{123.0});
            map.put(map.size(), new Object[]{123.456});
            map.put(map.size(), new Object[]{""});
            map.put(map.size(), new Object[]{"123asd'\"/\\"});
    
            List list_temp = new LinkedList();
            list_temp.add(null);
            map.put(map.size(), list_temp);
    
            list_temp = new LinkedList();
            list_temp.add(true);
            map.put(map.size(), list_temp);
    
            list_temp = new LinkedList();
            list_temp.add(123);
            map.put(map.size(), list_temp);
    
            list_temp = new LinkedList();
            list_temp.add(123.0);
            map.put(map.size(), list_temp);
    
            list_temp = new LinkedList();
            list_temp.add(123.456);
            map.put(map.size(), list_temp);
    
            list_temp = new LinkedList();
            list_temp.add("");
            map.put(map.size(), list_temp);
    
            list_temp = new LinkedList();
            list_temp.add("123asd'\"/\\");
            map.put(map.size(), list_temp);
    
            Map map_temp = new LinkedHashMap();
            map_temp.put(map_temp.size(), null);
            map.put(map.size(), map_temp);
            map_temp = new LinkedHashMap();
            map_temp.put(map_temp.size(), true);
            map.put(map.size(), map_temp);
            map_temp = new LinkedHashMap();
            map_temp.put(map_temp.size(), 123);
            map.put(map.size(), map_temp);
            map_temp = new LinkedHashMap();
            map_temp.put(map_temp.size(), 123.0);
            map.put(map.size(), map_temp);
            map_temp = new LinkedHashMap();
            map_temp.put(map_temp.size(), 123.456);
            map.put(map.size(), map_temp);
            map_temp = new LinkedHashMap();
            map_temp.put(map_temp.size(), "");
            map.put(map.size(), map_temp);
            map_temp = new LinkedHashMap();
            map_temp.put(map_temp.size(), "123asd'\"/\\");
            map.put(map.size(), map_temp);
    
            List list = new LinkedList(map.values());
    
            //println(new JSONObject(map).toString());
            //println(JSONValue.toJSONString(map));
            println(new JSONArray(list).toString());
            println(JSONValue.toJSONString(list));
        }
    
        public static <T> void println(T p_t) {
            System.out.println(p_t);
        }
    
    }
    

1 个答案:

答案 0 :(得分:0)

这两个库功能很差。他们为简单的案件做好了工作。

您的测试只是确定org.json没有序列化Map条目,其值nullorg.json.simple没有特殊情况对于数组类型(因此默认为其toString()方法返回值)。