有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从java代码创建Json文件

如何使用java代码创建以下JSON文件

{
"mode":"EXTENDED",
"vertices": [
    {
        "name": {
            "type": "string",
            "value": "loppper"
        },
        "lang": {
            "type": "string",
            "value": "java"
        },
        "_id": "3",
        "_type": "vertex"
    },
    {
        "name": {
            "type": "string",
            "value": "vadas"
        },
        "age": {
            "type": "integer",
            "value": 27
        },
        "_id": "2",
        "_type": "vertex"
    },
    {
        "name": {
            "type": "string",
            "value": "marko"
        },
        "age": {
            "type": "integer",
            "value": 29
        },
        "_id": "1",
        "_type": "vertex"
    },
     {
        "name": {
            "type": "string",
            "value": "mark12"
        },
        "age": {
            "type": "integer",
            "value": 31
        },
        "_id": "31",
        "_type": "vertex"
    },


    {
        "name": {
            "type": "string",
            "value": "peter"
        },
        "age": {
            "type": "integer",
            "value": 35
        },
        "_id": "6",
        "_type": "vertex"
    }]}

混淆了JSONObject和JSONArray。谁能帮忙吗。 我能够创造

{
"mode":"Extended",
"vertices" : [
[(1)
](2)
]
}

但我需要(1)(2)中的大括号而不是方括号


共 (2) 个答案

  1. # 1 楼答案

    我已经为我编写了一些util类,通过转换Map和List对象来生成JSON

    public static String parseMapToJSONString(Map<String,Object> mapData){
        StringBuilder jsonData = new StringBuilder("{");
        int iteration = 0;
        for(String key: mapData.keySet()){
            if( mapData.get(key) instanceof List){
                jsonData.append("\"").append(key).append("\"").append(":")
                        .append(parseListToJSONString((List<Object>) mapData.get(key)));
            } else if(mapData.get(key) instanceof Map){
                jsonData.append("\"").append(key).append("\"").append(":")
                        .append(parseMapToJSONString((Map<String,Object>) mapData.get(key)));
            } else {
                jsonData.append("\"").append(key).append("\"").append(":").append("\"").append(mapData.get(key).toString()).append("\"");
            }
            if(mapData.size() > 1 && iteration < mapData.size() - 1){
                jsonData.append(",");
            }
            iteration++;
        }
        jsonData.append("}");
        return jsonData.toString();
    }
    
    public static String parseListToJSONString(List<Object> listData){
        StringBuilder jsonListData = new StringBuilder("[");
        int iteration = 0;
        for(Object value: listData){
            if(value instanceof String){
                jsonListData.append("\"").append(value.toString()).append("\"");
            } else if(value instanceof Map){
                jsonListData.append(parseMapToJSONString((Map<String,Object>) value));
            }
            if(iteration < listData.size()-1){
                jsonListData.append(",");
            }
            iteration++;
        }
        jsonListData.append("]");
        return jsonListData.toString();
    }
    

    一些示例代码

        Map<String,Object> testMap1 = new HashMap();
        testMap1.put("name", "Oscar");
        testMap1.put("email","peter@yahoo.com");
    
        List<String> majorList = new ArrayList();
        majorList.add("Math");
        majorList.add("Physics");
        testMap1.put("major",majorList);
    
        Map<String,Object> testMap2 = new HashMap();
        testMap2.put("name", "Alice");
        testMap2.put("school", "ABC");
        testMap1.put("mother",testMap2);
    
        List<Map<String,Object>> friendList = new ArrayList();
        Map<String,Object> testMap3 = new HashMap();
        testMap3.put("name", "Peter");
        testMap3.put("school", "ABC");
        Map<String,Object> testMap4 = new HashMap();
        testMap4.put("name", "Tom");
        testMap4.put("school", "ABC");
        friendList.add(testMap3);
        friendList.add(testMap4);
    
        testMap1.put("friends",friendList);
        System.out.println(JSONParserService.parseMapToJSONString(testMap1));
    
  2. # 2 楼答案

    在Java中,可以使用gson库生成JSON字符串(并解析它们)。这就像创建一组对象、保存数据一样简单。然后,你打电话给^{}