我有这个字符串,我用它来测试api:
{"limit":30, "offset":"0", "filters": [{"property":"vlc.vlc","operator":"=","value":"DEKU113829"}]}
我想使用:
在Android应用中创建JSOn对象进行处理JSONObject json = new JSONObject();
json.put("limit", 30);
json.put("offset", "0");
但我不知道如何使用put方法创建“过滤器”部分...
对此有什么最有效和最有效的解决方案?
答案 0 :(得分:2)
JSONObject / JSONArray支持“builder-esque”模式,put
可以链接 - 它将返回相同(但已修改)的对象。
JSONObject json =
new JSONObject()
.put("limit", 30)
.put("offset", "0") /* but should be 0? */
.put("filters",
new JSONArray()
.put(new JSONObject()
.put("property", "vlc.vlc")
.put("operator", "=")
.put("value", "DEKU113829")
)
);
或者,查看像Gson这样的POJO映射器,为了便于使用和一致性,我会建议整体使用。
答案 1 :(得分:0)
试试这个......
JSONObject json = new JSONObject();
json.put("limit", 30);
json.put("offset", "0");
JSONArray js_array = new JSONArray();
JSONObject json_obj = new JSONObject();
json_obj.put("property", "vlc.vlc");
json_obj.put("operator", "=");
json_obj.put("value", "DEKU113829");
js_array.put(json_obj);
json.put("filters",js_array);
答案 2 :(得分:0)
使用Gson Library。您的JSON模型对象将是
public class MainModel
{
private int limit ;
public int getlimit()
{
return this.limit;
}
public void setlimit(int limit)
{
this.limit = limit;
}
private String offset ;
public String getoffset()
{
return this.offset;
}
public void setoffset(String offset)
{
this.offset = offset;
}
private ArrayList<Filter> filters ;
public ArrayList<Filter> getfilters()
{
return this.filters;
}
public void setfilters(ArrayList<Filter> filters)
{
this.filters = filters;
}
}
public class Filter
{
private String property ;
public String getproperty()
{
return this.property;
}
public void setproperty(String property)
{
this.property = property;
}
private String operator ;
public String getoperator()
{
return this.operator;
}
public void setoperator(String operator)
{
this.operator = operator;
}
private String value ;
public String getvalue()
{
return this.value;
}
public void setvalue(String value)
{
this.value = value;
}
}
您可以填充过滤器对象并创建MainModel对象并向其添加过滤器对象。接下来使用Gson库来获取你的json字符串
Gson gsonParser = new Gson();
String jsonString = gsonParser.toJson(mainModelObject);