我需要使用动态模式解析JSON
命中我们的API,我需要做出相应的响应。
动态架构就像,
{
"query": {
<OPERATOR>: {
<FIELD>: <VALUE>
}
},
"fields" : [<FIELD_1>, <FIELD_2>, ...],
"from": 0,
"size": 10
}
OR
{
"query": {
"and": [
{
<OPERATOR>: {
<FIELD>: <VALUE>
}
},
{
<OPERATOR>: {
<FIELD>: <VALUE>
}
}
]
},
"fields" : [<FIELD_1>, <FIELD_2>, ...],
"from": 0,
"size": 10
}
我们的回复将基于以上JSON's
。每个JSON
类型的响应都不同。
我可以使用dropwizard的Jackson库来解析或者需要编写我自己的解析器是两难的。如果是,怎么样?
提前致谢。
答案 0 :(得分:0)
如果你坚持使用我的代码然后告诉我,因为我没有时间来完善它。
String result = response.toString();
Object mainResponse = null;
try {
mainResponse = new JSONTokener(result).nextValue();
if (mainResponse instanceof JSONArray) {
JSONArray json1 = new JSONArray(response.toString());
Object value2 = json1.get(0);
Object output = tryMethod((JSONObject) value2, searchString);
outputtv.setText(output.toString());
Log.i("Output", output.toString() + "");
}
if (mainResponse instanceof JSONObject) {
JSONObject json = new JSONObject(response.toString());
Object output1 = tryMethod(json, searchString);
outputtv.setText(output1.toString());
Log.i("Output", output1 + "");
}
} catch (JSONException e1) {
e1.printStackTrace();
}