如何将属性 JSON 对象值与使用 Android 或 Java 相匹配?
How to match attributes JSON object values to using Android or Java?
我正在创建一个示例,使用概念 JSONArray 解析来获取特定值以匹配属性。
例如:
sample_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],"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();
}
}
}
不显示空值。
示例数据错误。
你少了一个逗号
改变
[ {
"query": "Pizza",
"locations": [94043,90210]
"mDK": "kk"
至
[ {
"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
我正在创建一个示例,使用概念 JSONArray 解析来获取特定值以匹配属性。
例如:
sample_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],"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();
}
}
}
不显示空值。
示例数据错误。
你少了一个逗号
改变
[ {
"query": "Pizza",
"locations": [94043,90210]
"mDK": "kk"
至
[ {
"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