如何使用Android或Java将JSON对象值与属性匹配?
我正在使用概念JSONArray parse创建一个示例,以获得与属性匹配的特定值 例如: 示例_struct.json文件数据如何使用Android或Java将JSON对象值与属性匹配?,java,android,arrays,jsonobject,Java,Android,Arrays,Jsonobject,我正在使用概念JSONArray parse创建一个示例,以获得与属性匹配的特定值 例如: 示例_struct.json文件数据 [ { "query": "Pizza", "locations": [94043,90210] "mDK": "kk" }, { "query": "Pizza", "locations": [94043,90210] }, { "query": "akkk", "locations": [94043,90210]
[ {
"query": "Pizza",
"locations": [94043,90210]
"mDK": "kk"
}, {
"query": "Pizza",
"locations": [94043,90210]
}, {
"query": "akkk",
"locations": [94043,90210]
}, {
"query": "Pizza",
"locations": [94043,90210],
"mDK": "kk"
}, {
"query": "Pizza",
"locations": [94043,90210],"mDK": "ff"
}, {
"query": "Pigg",
"locations": [94043,90210],"mDK": "kk"
}, {
"query": "Pgg",
"locations": [94043,90210],"mDK": "ff" }, {
"query": "Pgg",
"locations": [94043,90210],"mDK": "ff" }, {
"query": "Pgg",
"locations": [94043,90210],"mDK": "ff" }, {
"query": "Pgg",
"locations": [94043,90210],"mDK": "kk" }]
我的需要是获取“mDk”,其中字符串“kk”要在查询和位置值中列出并显示它
String mmm = "kk";
JSONArray jsonArray=getJSonData("sample_struct.json");
parseData(jsonArray);
private void parseData(JSONArray array) {
for(int i = 0; i < array.length(); i++) {
Mo mo = new Mo();
JSONObject json = null;
try {
json = array.getJSONObject(i);
if(json.get("mDK").equals(mm)) {
mo.setquery(json.getString("query"));
mo.setlocations(json.getString("locations));
mo.setmDK(json.getString("mDk"));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
String mmm=“kk”;
JSONArray JSONArray=getJSonData(“sample_struct.json”);
parseData(jsonArray);
私有void parseData(JSONArray数组){
对于(int i=0;i
不显示空值。样本数据错误
你少了一个逗号
嫦娥
[ {
"query": "Pizza",
"locations": [94043,90210]
"mDK": "kk"
到
首先,它不是一个有效的JSON,为了使它有效,在第3行添加逗号(,),如下所示
"locations": [94043,90210],
那么只有你可以这样检查
json = array.getJSONObject(i);
if(json.getString("mDK").equals(mm)){
//Your logic
}
记住:它不是
json.get
,它是json.getString
我的sample_struct.json文件没有有效的json数据。请检查这里,只是从文件中复制粘贴文本。您现在得到的结果是什么,它与您想要达到的结果有何不同?
json = array.getJSONObject(i);
if(json.getString("mDK").equals(mm)){
//Your logic
}