大家好我从Wordpress得到了一个跟随json的APi Call
[
{
"ID": 248,
"post_title": "test post",
"post_author": "admin",
"excerpt": "",
"url": "http://localhost/wp-learning/?p=248",
"permalink": "http://192.168.10.31/wp-learning/test-post/",
"post_date": "2017-08-07 09:15:57",
"comment_count": "2",
"category": [
{
"term_id": 1,
"name": "Uncategorized",
"slug": "uncategorized",
"term_group": 0,
"term_taxonomy_id": 1,
"taxonomy": "category",
"description": "",
"parent": 0,
"count": 1,
"filter": "raw",
"cat_ID": 1,
"category_count": 1,
"category_description": "",
"cat_name": "Uncategorized",
"category_nicename": "uncategorized",
"category_parent": 0
}
],
"views": "4",
"featured_image": false
},
{
"ID": 247,
"post_title": "The Coolest Vanity Apps for You and Your Girls",
"post_author": "admin",
"excerpt": "",
"url": "http://td_uid_79_598817d2cebf2",
"permalink": "http://192.168.10.31/wp-learning/the-coolest-vanity-apps-for-you-and-your-girls/",
"post_date": "2017-08-07 07:33:38",
"comment_count": "0",
"category": [
{
"term_id": 15,
"name": "Beauty",
"slug": "beauty",
"term_group": 0,
"term_taxonomy_id": 15,
"taxonomy": "category",
"description": "On each category you can set a Category template style, a Top post style (grids) and a module type for article listing.",
"parent": 14,
"count": 17,
"filter": "raw",
"cat_ID": 15,
"category_count": 17,
"category_description": "On each category you can set a Category template style, a Top post style (grids) and a module type for article listing.",
"cat_name": "Beauty",
"category_nicename": "beauty",
"category_parent": 14
}
],
"views": "0",
"featured_image": "http://192.168.10.31/wp-learning/wp-content/uploads/2017/08/3.jpg"
}
]
我在获取标签名称" featured_image"时遇到问题。它是什么类型的数据类型?我试过了
jsonObj.getString("featured_image");
为此它给了我错误JSONObject [" featured_image"]不是字符串。 还
resultsObj.getJSONObject("featured_image").toString()
为此它给了我错误JSONObject [" featured_image"]不是JSONObject。
答案 0 :(得分:0)
您正在执行resultsObj.getJSONObject("featured_image").toString()
,要求在' featured_image'中从键/值中获取JSON对象。
但我们可以看到该值是一个字符串,或者是一个bool:
"featured_image": "http://192.168.10.31/wp-learning/wp-content/uploads/2017/08/3.jpg"
"featured_image": false
因此,您根本不应该在此密钥上调用getJSONObject()
。
答案 1 :(得分:0)
根据您的JSON结构,看起来“featured_image”是布尔类型,它不是字符串或对象。
答案 2 :(得分:0)
我认为它内在的json问题 试试这样:
JSONObject category = jsonObj.getJSONObject("category");
category.getJSONObject("featured_image");
答案 3 :(得分:0)
您可以使用以下代码,我没有经过测试,但这有助于确定数据类型,并根据您可以决定需要调用哪种方法的类型。
所以使用:
JsonValue type = resultsObj.get("featured_image").getValueType();
if (type.getValueType() == JsonValue.ValueType.TRUE || type.getValueType() == JsonValue.ValueType.FALSE){
// call boolean method
boolean bValue = resultsObj.get("featured_image").getAsBoolean()
}else{
//based on you type you can call respective method.
}
请参阅以下链接: JsonValueType