我有一个来自wordpress中的rest API的JSON文件,它有一个带有两个用户记录的自定义帖子,我想从自定义字段用户数据(id,name,pass,client_type)获取数据,这是我的JSON文件:
--3way
这是Java中的代码:
sequencer.c
它没有带上面的数据,有人可以帮我解决???
答案 0 :(得分:1)
目前,我正在开发一款几乎一直通过REST服务与服务器通信的应用。我发现这是一种简化与后端通信的方法:
使用Gson解析此响应字符串,这会阻止我从JSON响应中读取每个字符串,并且必须自己解析数据。为此,我需要将我之前的响应建模为一个类。例如:
public class Blog implements Parcelable {
@SerializedName("status")
private String mStatus;
@SerializedName("count")
private int mCount;
@SerializedName("pages")
private int mPages;
@SerializedName("posts")
private ArrayList <Post> mPosts;
// "Post" is another Parcelable model class like this one
...
// Implement getters and setters for each variable
...
}
SerializedName 是:
一个注释,指示此成员应序列化为JSON,并提供名称值作为其字段名称。
因此,传递给SerializedName的字符串应该是JSON响应中项的键。 然后,回到onPostExecute(),你可以像这样解析JSON字符串:
Gson gson = new GsonBuilder().create;
gson.fromJson(responseString, Blog.class);
希望你觉得这很有用!请问是否有一些我没有解释的事情:)。
答案 1 :(得分:0)
您的json响应访问custom_fields
项非常复杂。您可以将custom_fields
的所有项目作为键值对,而不是数组,例如。"name":"name_value"
,但下面的代码显示了如何读取这些值。
JSONObject jsonChildNode = jsonMainNode.getJSONObject(i);
JSONObject fieldsObject = jsonChildNode.getJSONObject("custom_fields");
JSONArray idArray = fieldsObject.getJSONArray("id");
String idValue = idArray.getString(0);
JSONArray nameArray = fieldsObject.getJSONArray("name");
String nameValue = nameArray.getString(0);
JSONArray passArray = fieldsObject.getJSONArray("pass");
String passValue = passArray.getString(0);
JSONArray clientArray = fieldsObject.getJSONArray("client_type");
String clientValue = clientArray.getString(0);