【问题标题】:Android: How to get JSON object keys from this json:Android:如何从此 json 获取 JSON 对象键:
【发布时间】:2016-09-16 07:45:32
【问题描述】:

这是 JSON 数组:

 {
    "server_response": [{
        "Total": "135",
        "Paid": "105",
        "Rest": "30"
    }]
}

那么,我怎样才能获得对象名称?我想把它们放在单独的 TextView 中。 谢谢。

【问题讨论】:

标签: java arrays json android-studio jsonobject


【解决方案1】:

把它放在一切之外。我的意思是在onCreate() 之外。

private <T> Iterable<T> iterate(final Iterator<T> i){
    return new Iterable<T>() {
        @Override
        public Iterator<T> iterator() {
            return i;
        }
    };
}

用于获取对象的名称:

    try
    {
        JSONObject jsonObject = new JSONObject("{" +"\"server_response\": [{" +"\"Total\": \"135\"," +"\"Paid\": \"105\"," +"\"Rest\": \"30\"" +"}]"+"}";);
        JSONArray jsonArray = jsonObject.getJSONArray("server_response");
        JSONObject object = jsonArray.getJSONObject(0);

        for (String key : iterate(object.keys())) 
        {
            // here key will be containing your OBJECT NAME YOU CAN SET IT IN TEXTVIEW.
            Toast.makeText(HomeActivity.this, ""+key, Toast.LENGTH_SHORT).show();
        }

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

希望这会有所帮助:)

【讨论】:

  • 谢谢!这就是我想要的:)
  • 还有一件事,我如何在不同的文本视图中设置键?
  • 给我TextViews的名字。
【解决方案2】:
JSONObject jsonObject = new JSONObject("Your JSON");
int Total = jsonObject.getJSONArray("server_response").getJSONObject(0).getInt("Total");
int Paid = jsonObject.getJSONArray("server_response").getJSONObject(0).getInt("Paid");
int Rest = jsonObject.getJSONArray("server_response").getJSONObject(0).getInt("Rest");

【讨论】:

    【解决方案3】:

    您可以使用jackson ObjectMapper 来执行此操作。

    public class ServerResponse {
    
     @JsonProperty("Total") 
     private String total;
     @JsonProperty("Paid") 
     private String paid;
     @JsonProperty("Rest") 
     private String rest;
    
     //getters and setters
     //toString()
    }
    
    //Now convert json into ServerResponse object
    ObjectMapper mapper = new ObjectMapper();
    TypeReference<ServerResponse> serverResponse = new TypeReference<ServerResponse>() { };
    Object object = mapper.readValue(jsonString, serverResponse);
     if (object instanceof ServerResponse) {
        return (ServerResponse) object;
     }
    

    【讨论】:

      【解决方案4】:

      我的建议:

      访问这个网站:
      Json to pojo

      获取您的 pojo 类,然后在 Android 中使用它们。
      您需要做的就是使用 Gson.fromGson(params here)。
      您的参数之一是您使用在线模式创建的类。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-03
        • 1970-01-01
        • 2012-12-04
        • 2022-01-24
        • 2016-11-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多