Android:如何从此 json 获取 JSON 对象键:

Posted

技术标签:

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

这是 JSON 数组:

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

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

【问题讨论】:

哪些名字?? “总计”和所有 ?? 看看这个tutorialspoint.com/android/android_json_parser.htm @jankigadhiya 我想要所有 【参考方案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)。 您的参数之一是您使用在线模式创建的类。

【讨论】:

以上是关于Android:如何从此 json 获取 JSON 对象键:的主要内容,如果未能解决你的问题,请参考以下文章

如何从没有数组名称的android中的json中获取数据?

如何从此 json 数据中获取键和值?

如何从此 JSON 中获取 event_id

从此链接填充 JSON 到 android Listview

如何从 json 代码的节点中获取值?

如何使用 Alamofire swift 3 从这个 JSON 中获取值