【问题标题】:JSON parse string? [duplicate]JSON解析字符串? [复制]
【发布时间】:2017-12-11 18:20:17
【问题描述】:

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

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

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

private String param1 = null;
private String param2 = null;

我不明白如何编码。请给我这个示例代码。

【问题讨论】:

  • @Dalton 我不知道如何解析。你写的那个问这个问题的链接说“我已经通过代码得到了 JSON 字符串”

标签: android json parsing


【解决方案1】:
[ {"param1":"market"}, {"param2":"you"} ]

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

【讨论】:

  • 你能给我示例代码吗?我是android开发新手。
  • JSON Parsing Tutorial,希望对您有所帮助。
【解决方案2】:
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");

【讨论】:

  • 我的对象在服务器端。我把它保存在txt文件中。你能修改你的代码吗?
  • 这段代码好像是一个字符串或者已经是一个JSONArray,如果是第一个,就按照我写的代码来做吧。如果是第二种情况,您只需删除前两行。
【解决方案3】:

所以你需要调用服务器来获取 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");

【讨论】:

  • jsonStr 在服务器端。我把它保存在txt文件中。你能修改你的代码吗?
  • 编辑了答案希望对您有所帮助。
猜你喜欢
  • 2018-06-11
  • 1970-01-01
  • 1970-01-01
  • 2011-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
相关资源
最近更新 更多