我正在尝试解析一些JSON但我遇到了一些麻烦.
这是我已经尝试过的:
ContentValues categories = new ContentValues();
JSONObject json = new JSONObject(improvedInputStreamAsString);
Iterator keys = json.keys();
while(keys.hasNext()) {
Object newObj = keys.next();
String jsonString = newObj.toString();
if(jsonString == "children") {
JSONObject newJsn = new JSONObject(jsonString);
if(newJsn.has("name")) {
String category = newJsn.getString("name");
categories.put("categories", category);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我只是试图从中获取类别JSONObject但由于某种原因jsonString从未评估过children.
这是结构,对不起,我粘贴了这么大的一部分,我发现JSON真的很混乱,很难尝试在保留其完整性的同时将其剪下来,请记住我只是想要得到这个name领域:
{
"position": "0",
"children": [
{
"position": "1",
"children": [
{
"position": "1",
"children": [
{
"position": "3",
"children": [
],
"category_id": "9",
"level": "3",
"is_active": "1",
"name": "Exfoliants",
"parent_id": "4"
},
{
"position": "4",
"children": [
],
"category_id": "10",
"level": "3",
"is_active": "1",
"name": "Moisturisers",
"parent_id": "4"
},
{
"position": "5",
"children": [
],
"category_id": "11",
"level": "3",
"is_active": "1",
"name": "Treatments",
"parent_id": "4"
},
{
"position": "6",
"children": [
],
"category_id": "12",
"level": "3",
"is_active": "1",
"name": "Cleansers",
"parent_id": "4"
},
{
"position": "7",
"children": [
],
"category_id": "13",
"level": "3",
"is_active": "1",
"name": "Skin Toners",
"parent_id": "4"
},
{
"position": "9",
"children": [
],
"category_id": "15",
"level": "3",
"is_active": "1",
"name": "Serums",
"parent_id": "4"
},
{
"position": "10",
"children": [
],
"category_id": "36",
"level": "3",
"is_active": "1",
"name": "Acne and Blemish Treatments",
"parent_id": "4"
},
{
"position": "11",
"children": [
],
"category_id": "40",
"level": "3",
"is_active": "1",
"name": "Oils",
"parent_id": "4"
}
],
"category_id": "4",
"level": "2",
"is_active": "1",
"name": "Skincare",
"parent_id": "2"
},
{
"position": "2",
"children": [
{
"position": "1",
"children": [
],
"category_id": "16",
"level": "3",
"is_active": "1",
"name": "Sunscreen",
"parent_id": "5"
},
{
"position": "2",
"children": [
],
"category_id": "31",
"level": "3",
"is_active": "1",
"name": "Insect Repellent & After Bite",
"parent_id": "5"
},
{
"position": "3",
"children": [
],
"category_id": "32",
"level": "3",
"is_active": "1",
"name": "After Sun Lotions",
"parent_id": "5"
},
{
"position": "4",
"children": [
],
"category_id": "33",
"level": "3",
"is_active": "1",
"name": "Self Tanning Lotions",
"parent_id": "5"
}
],
"category_id": "5",
"level": "2",
"is_active": "1",
"name": "Suncare",
"parent_id": "2"
},
{
"position": "3",
"children": [
{
"position": "1",
"children": [
],
"category_id": "17",
"level": "3",
"is_active": "1",
"name": "Shampoo",
"parent_id": "6"
},
{
"position": "2",
"children": [
],
"category_id": "18",
"level": "3",
"is_active": "1",
"name": "Conditioner",
"parent_id": "6"
},
{
"position": "3",
"children": [
],
"category_id": "19",
"level": "3",
"is_active": "1",
"name": "Treatments",
"parent_id": "6"
},
{
"position": "4",
"children": [
],
"category_id": "20",
"level": "3",
"is_active": "1",
"name": "Toner",
"parent_id": "6"
},
{
"position": "6",
"children": [
],
"category_id": "34",
"level": "3",
"is_active": "1",
"name": "Styling",
"parent_id": "6"
},
{
"position": "7",
"children": [
],
"category_id": "39",
"level": "3",
"is_active": "1",
"name": "Serum",
"parent_id": "6"
}
],
"category_id": "6",
"level": "2",
"is_active": "1",
"name": "Hair",
"parent_id": "2"
},
{
"position": "0",
"children": [
{
"position": "1",
"children": [
{
"position": "1",
"children": [
{
"position": "3",
"children": [
],
"category_id": "9",
"level": "3",
"is_active": "1",
"name": "Exfoliants",
"parent_id": "4"
},
{
"position": "6",
"children": [
],
"category_id": "12",
"level": "3",
"is_active": "1",
"name": "Cleansers",
"parent_id": "4"
},
],
"category_id": "4",
"level": "2",
"is_active": "1",
"name": "Skincare",
"parent_id": "2"
},
{
"position": "2",
"children": [
{
"position": "1",
"children": [
],
"category_id": "16",
"level": "3",
"is_active": "1",
"name": "Sunscreen",
"parent_id": "5"
},
Run Code Online (Sandbox Code Playgroud)
小智 12
您需要使用String.equals()来比较字符串:
if(jsonString.equals("children")) { ... }
Run Code Online (Sandbox Code Playgroud)
jsonString =="children"比较对象引用,而不是字符串.
| 归档时间: |
|
| 查看次数: |
1692 次 |
| 最近记录: |