【问题标题】:How to get and parse this JSON object to Android textview [duplicate]如何获取此 JSON 对象并将其解析为 Android textview [重复]
【发布时间】:2017-10-13 09:23:10
【问题描述】:

我正在使用 CryptoCompare 提供的 API。我需要从这个 JSON 对象中获取 Symbol 和 Price。

{
  "Response": "Success",
  "Message": "Do not take life too seriously. You will never get out of it alive.",
  "Data": [
    {
      "Symbol": "USD",
      "Price": 5660.94,
      "Open24Hour": 5155.13,
      "LastUpdateTS": 1507885905,
      "Volume24Hours": 222438.875,
      "Volume24HoursTo": 1214073220
    },
    {
      "Symbol": "EUR",
      "Price": 4757.16,
      "Open24Hour": 4318.19,
      "LastUpdateTS": 1507885905,
      "Volume24Hours": 26488.4023,
      "Volume24HoursTo": 120264888
    }
  ],
  "Type": 100
}

【问题讨论】:

  • 你尝试了什么?
  • 朋友,我建议你至少尝试一下。这是一项您可以轻松实现谷歌搜索的任务。给你个提示:Gson

标签: java android json


【解决方案1】:

我建议您将数据存储到 List

所以,初始化两个List

List<String> symbol = new ArrayList<String>();
List<String> price = new ArrayList<String>();

那么这里就可以存储数据了

try {

    JSONObject json = new JSONObject(response);
    JSONArray jArray = json.getJSONArray("Data");
    for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject object = jsonArray.getJSONObject(i);
        symbol.add(object.getString("Symbol"));
        price.add(object.getString("Price"));

    }

} catch (JSONException e) {
    e.printStackTrace();
}

这可能对你有帮助

【讨论】:

  • 谢谢。这是我最好的答案。
  • 很高兴这个作品,然后请点击勾选@emeUshiwu 接受这个答案
  • 如何接受?
  • 不客气。
【解决方案2】:

怎么做?

  • 如果你在代码中遇到{},可以使用JSONObject来解析。

  • 如果你在代码中遇到[],可以使用JSONArray解析。

  • 如果您在代码中遇到[],您可以使用for loop 从中获取价值。

  • 你应该在你的代码中使用try catch。

试试这个。

try {
        JSONObject jsonObject = new JSONObject(response);
        String Response = jsonObject.optString("Response");
        JSONArray Data = jsonObject.optJSONArray("Data");
        for (int i = 0; i < Data.length(); i++) {
            JSONObject jo = Data.optJSONObject(i);
            String Symbol = jo.optString("Symbol");
            String Price = jo.optString("Price");
            String Open24Hour = jo.optString("Open24Hour");
            String LastUpdateTS = jo.optString("LastUpdateTS");
            String Volume24Hours = jo.optString("Volume24Hours");
            String Volume24HoursTo = jo.optString("Volume24HoursTo");
        }
} catch (JSONException e) {
        e.printStackTrace();
}

【讨论】:

  • 感谢您的回答对我有帮助
【解决方案3】:

看看这个

try {

            JSONObject objresponse=new JSONObject("{\"Response\":\"Success\",\"Message\":\"Do not take life too seriously. You will never get out of it alive.\",\"Data\":[{\"Symbol\":\"USD\",\"Price\":5660.94,\"Open24Hour\":5155.13,\"LastUpdateTS\":1507885905,\"Volume24Hours\":222438.875,\"Volume24HoursTo\":1.21407322E+09},{\"Symbol\":\"EUR\",\"Price\":4757.16,\"Open24Hour\":4318.19,\"LastUpdateTS\":1507885905,\"Volume24Hours\":26488.4023,\"Volume24HoursTo\":120264888.0}],\"Type\":100}");
            JSONArray arrayData=objresponse.getJSONArray("Data");
            for (int i=0;i<arrayData.length();i++){
                JSONObject obj=arrayData.getJSONObject(i);
                String symbol=obj.getString("Symbol");
                float price=(float)obj.getLong("Price");
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

【讨论】:

    猜你喜欢
    • 2017-06-26
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多