2015-09-28 83 views
-2

如何使用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)

+3

向我们展示你尝试过什么产生JSON? –

回答

1

在Java中,你可以使用gson库来生成JSON字符串(和解析他们)。这与创建一组保存数据的对象一样简单。之后,您致电Gson.toJson(obj)

0

我已经写了一些UTIL类对我来说,通过将地图和列表对象

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","[email protected]"); 

    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));