java解码json帮助(使用json-simple)

时间:2013-10-15 10:55:55

标签: java json decode json-simple

我知道要求制作东西很糟糕,但这是我第一次陷入java。最近我开始学习java,对于我的小工具,我需要阅读这个json字符串。

我正在寻找半天,并努力使事情发挥作用,并建立简单的json。

但我不能这样做。 请帮忙。

例如,只需将steamid和communityvisibilitystate检索为字符串

即可
String steamid = ...;
String communityvisibilitystate = ...;

如果你有更好的解决方案,不使用json-simple post it

{
"response": {
    "players": [
        {
            "steamid": "76561198777777777",
            "communityvisibilitystate": 3,
            "profilestate": 1,
            "personaname": "777777",
            "lastlogoff": 7777777777,
            "profileurl": "http://steamcommunity.com/profiles/76561198777777777/",
            "avatar": "http://media.steampowered.com/steamcommunity/public/images/avatars/16/777777777.jpg",
            "avatarmedium": "http://media.steampowered.com/steamcommunity/public/images/avatars/16/777777777_medium.jpg",
            "avatarfull": "http://media.steampowered.com/steamcommunity/public/images/avatars/16/777777777_full.jpg",
            "personastate": 0,
            "primaryclanid": "103582797777777777",
            "timecreated": 7777777777
        }
    ]

}
}

4 个答案:

答案 0 :(得分:2)

1:您的完整回复是JSON OBJECT

2:如果任何元素写成

"some key name " : { " some value " }

这是一个JSON对象

3:如果任何元素被写成

 "some key name " :  " some value " 

这是你可以通过

得到的json对象里面的值
jsonObject.getString("key name")

4:如果任何元素被写成

"some key name " : [ " some value " ]

然后这是一个JSON数组,您必须将其带入JSON ARRAY,然后通过

遍历其元素
jsonObject.getJSONARRAY("key name for JSON ARRAY IN RESPONSE ")

然后你可以通过

遍历JSON ARRAY的元素
`jsonArrayObj.get(0);`

答案 1 :(得分:1)

阅读完问题后。似乎你有2个问题

  

要在线生成JSON,我建议您访问此Link。这将生成所需的JSON。

     

用于解析json,请参阅以下代码   假设您已将此JSON响应放在字符串变量结果

            String result = "yourresponse";

            try {
                JSONObject object = new JSONObject(result);
                JSONObject object1 = object.getJSONObject("response");
                JSONArray arr = object1.getJSONArray("Players");
                for (int i = 0; i < arr.length(); i++) 
                {
                      JSONObject object3 = arr.getJSONObject(i);
                      String steamId = object3.getString("steamid");
                      String communityvisibilitystate = object3
                        .getString("communityvisibilitystate");
                }

            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

答案 2 :(得分:0)

您可以这样做:

Object obj = parser.parse(new FileReader("c:\\test.json"));

JSONObject jsonObject = (JSONObject) obj;

String steamid= (String) jsonObject.get("steamid");
System.out.println(steamid);

但我建议使用gson。它更容易,并且有很好的文档记录。

答案 3 :(得分:0)

创建一个类结果,其结构与json响应完全相同(例如,参见下面的结构)

class Result {
    class Response {
        list of (<class Players> {
             String steamid
             String communityvisibilitystate
             String profilestate
             String personaname
             String lastlogoff
             String profileurl
             String avatar
             String avatarmedium
             String avatarfull
             String personastate
             String primaryclanid
             String timecreated
             })
       }
   }
}

然后使用gson来解析你的json。

Result pareseJson = new Gson().fromJson(jsonString, Result.class);