Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.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
Android JSON解析字符串?_Android_Json_Parsing - Fatal编程技术网

Android JSON解析字符串?

Android JSON解析字符串?,android,json,parsing,Android,Json,Parsing,我有一个包含两个对象的JSON文件。此文件位于服务器端 [{“param1”:“market”},{“param2”:“you”}] 我想解析这些对象并设置为字符串param1,param2 private String param1 = null; private String param2 = null; 我不懂如何编码。请给我这个的示例代码 [ {"param1":"market"}, {"param2":"you"} ] 方括号显示您的响应以JSON数组开始。因此,您应该具有JSON

我有一个包含两个对象的JSON文件。此文件位于服务器端

[{“param1”:“market”},{“param2”:“you”}]

我想解析这些对象并设置为字符串param1,param2

private String param1 = null;
private String param2 = null;
我不懂如何编码。请给我这个的示例代码

[ {"param1":"market"}, {"param2":"you"} ]

方括号显示您的响应以JSON数组开始。因此,您应该具有JSON数组的键名,这样您就可以从JSON数组中找到JSON对象的值。

因此您需要调用服务器来获取jsonString,您可以通过传递url和获取JSON str来进行类似的服务调用

public String makeServiceCall(String reqUrl) {
        String response = null;
        try {
            URL url = new URL(reqUrl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            InputStream in = new BufferedInputStream(conn.getInputStream());
            response = convertStreamToString(in);
        } catch (MalformedURLException e) {
            Log.e(TAG, "MalformedURLException: " + e.getMessage());
        } catch (ProtocolException e) {
            Log.e(TAG, "ProtocolException: " + e.getMessage());
        } catch (IOException e) {
            Log.e(TAG, "IOException: " + e.getMessage());
        } catch (Exception e) {
            Log.e(TAG, "Exception: " + e.getMessage());
        }
        return response;
    }

然后像这样使用从调用中获得的jsonStr

String jsonStr = makeServiceCall(String reqUrl);
JSONArray jsonArr= new JSONArray(jsonStr);
JSONObject jsonObjectOne = jsonArr.getJSONObject(0);
String param1 = jsonObjectOne.getString("param1");
JSONObject jsonObjectTwo = jsonArr.getJSONObject(1);
String param2 = jsonObjectTwo.getString("param2");

你能给我一个示例代码吗?我是android开发的新手,希望这能对你有所帮助。@Dalton我不知道如何解析。您编写的链接,谁问这个问题说“我已经得到JSON字符串的代码”jsonStr在服务器端。我把它保存在txt文件中。你能修改你的代码吗?编辑了答案希望能有所帮助。我的对象在服务器端。我把它保存在txt文件中。你能修改你的代码吗?这段代码似乎是一个字符串或者已经是一个JSONArray,如果它是第一个,就按照我写的代码来做。如果是第二种情况,只需删除前两行即可。
String string = "[ {"param1":"market"}, {"param2":"you"} ]"

JSONArray arr = new JSONArray(string);

JSONObject firstPart = arr.getJSONObject(0);

JSONObject secondPart = arr.getJSONObject(1);

firstPart.getString("param1");
secondPart.getString("param2");