Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java解码json帮助(使用json简单)_Java_Json_Decode_Json Simple - Fatal编程技术网

java解码json帮助(使用json简单)

java解码json帮助(使用json简单),java,json,decode,json-simple,Java,Json,Decode,Json Simple,我知道要求制作东西是不好的,但这是我第一次被java绊倒。最近我开始学习java,对于我的小工具,我需要阅读这个json字符串 有半天,我在搜索,试图让事情变得简单 但我不能这样做。 请帮忙 例如,仅检索字符串的steamid和communityvisibilitystate String steamid = ...; String communityvisibilitystate = ...; 如果您有更好的解决方案,不使用json,请简单发布 { "response": { "pl

我知道要求制作东西是不好的,但这是我第一次被java绊倒。最近我开始学习java,对于我的小工具,我需要阅读这个json字符串

有半天,我在搜索,试图让事情变得简单

但我不能这样做。 请帮忙

例如,仅检索字符串的steamid和communityvisibilitystate

String steamid = ...;
String communityvisibilitystate = ...;
如果您有更好的解决方案,不使用json,请简单发布

{
"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
        }
    ]

}
}

你可以这样做:

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

JSONObject jsonObject = (JSONObject) obj;

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

但我建议使用。这要简单得多,而且有很好的文档记录。

1:您的完整响应是一个JSON对象

2:如果任何元素写为

"some key name " : { " some value " }
这是一个JSON对象

3:如果有任何元素像

 "some key name " :  " some value " 
"some key name " : [ " some value " ]
这是json对象内部的值,可以通过

jsonObject.getString("key name")
4:如果有任何元素像

 "some key name " :  " some value " 
"some key name " : [ " some value " ]
然后这是一个JSON数组,您必须将其放入JSON数组中,然后通过

jsonObject.getJSONARRAY("key name for JSON ARRAY IN RESPONSE ")
然后您可以通过

`jsonArrayObj.get(0);`

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


看完你的问题。你似乎有两个问题

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

要解析json,请参阅以下代码 假设您已将此JSON响应放入字符串变量result中

String result=“yourresponse”;
试一试{
JSONObject对象=新的JSONObject(结果);
JSONObject object1=object.getJSONObject(“响应”);
JSONArray arr=object1.getJSONArray(“玩家”);
对于(int i=0;i
您应该试试谷歌的gson,这里是如何使用它的简单指南
            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();
            }