朋友们,我关注JSON foramt
{
"Communities": [],
"RateLog": { "83": 5,"84": 4, "85": 5,"92": 5,"93": 4,"94": 5,"95": 5,"97": 5,"99": 4,"100": 5,"102": 5,"103": 5,"104": 5,"105": 5,"106": 5,"108": 4,"109": 4,"110": 4,"111": 5,"112": 4,"113": 4,"114": 4,"115": 5,"116": 5,"117": 5,"118": 4,"119": 5, "120": 5,"121": 4,"122": 5,"123": 4,"124": 4,"125": 4,"126": 5, "142": 5,"1150": 4, "1151": 4,"1152": 4, "1153": 4,"1154": 4, "1155": 4,"1156": 4, "1158": 5}
}
所以我怎么能解析它呢?
答案 0 :(得分:1)
您可以将其括在大括号中,将其转换为合法的JSON。所以如果你有字符串:
var badJSON = '"RateLog" : { "1156": 4, ... }';
你可以这样做:
var goodJSON = '{' + badJSON + '}';
var parsed = JSON.parse(goodJSON);
编辑:上面的答案是在您编辑之前。使用新格式,字符串是有效的JSON,因此只需调用JSON.parse()
并传递字符串以获取相应的对象结构。
答案 1 :(得分:0)
您必须改进这样的json格式:
"RateLog":[
{
id1:1156
id2:4
{
id1:1155
id2:4
}
{
id1:1155
id2:4
}
..]
答案 2 :(得分:0)
您可以使用Google的Gson库来解析您的回复。
使用POJO类
String jsonString = "Your JSON string";
Pojo pojo = new Gson().fromJson(jsonString, Pojo.class);
class Pojo {
ArrayList<String> Communities;
HashMap<String, Integer> RateLog;
//Setters and Getters
}
不使用POGO类
Gson gson = new Gson();
String jsonString = "Your JSON string";
JsonObject jsonObj = gson.fromJson(jsonString, JsonElement.class).getAsJsonObject();
HashMap<String, Integer> RateLog = gson.fromJson(jsonObj.get("RateLog").toString(), new TypeToken<HashMap<String, Integer>>(){}.getType());
您可以遍历RateLog HashMap以获取键值对。
答案 3 :(得分:0)
JSONObject json = new JSONObject(jsonString);
JSONArray array = json.getJSONArray("Communities");
for (int i = 0; i < array.length(); i++) {
// do stuff
}
JSONObject rateJson = json.getJSONObject("RateLog");
rateJson.getInt("83"); //Will return 5
.
.
.
了解更多内容
http://www.mkyong.com/java/json-simple-example-read-and-write-json/