Как разобрать JSON, имеющий динамический ключевой узел - PullRequest
0 голосов
/ 23 февраля 2012

Как разобрать следующий JSON в iPhone.Ключ node_10947 может меняться каждый раз.

Любая идея?

{
"metadata": {
    "node_10947": {
        "nodeID": "10947",
        "objectID": "11121",
        "name": "Abc",
        "classIdentifier": "folder",
        "node_10948": {
            "nodeID": "10948",
            "objectID": "11122",
            "name": "Abc_A",
            "classIdentifier": "tag"
        },
        "node_10951": {
            "nodeID": "10951",
            "objectID": "11123",
            "name": "Abc_b",
            "classIdentifier": "tag"
        },
        "node_10952": {
            "nodeID": "10952",
            "objectID": "11125",
            "name": "Abc_c ",
            "classIdentifier": "tag"
        }
    },
    "node_170": {
        "nodeID": "170",
        "objectID": "196",
        "name": "XYZ",
        "classIdentifier": "folder",
        "node_179": {
            "nodeID": "179",
            "objectID": "206",
            "name": "XYZ_a",
            "classIdentifier": "tag"
        },
        "node_180": {
            "nodeID": "180",
            "objectID": "207",
            "name": "XYZ_b",
            "classIdentifier": "tag"
        },
        "node_182": {
            "nodeID": "182",
            "objectID": "209",
            "name": "XYZ_c",
            "classIdentifier": "tag"
        }
    }
}

}

У меня вышеупомянутый json, и ключевой узел может измениться в любое время, пожалуйста, подскажите, как мне проанализировать json, чей узелдинамически меняется в любое время ???

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

Если вы можете изменить этот json, включите в него еще один ключ, который будет содержать значение текущего ключа, например:

{"metadata": {currentKey: "node_10947}

И используйте этот ключ для доступа к значениям, определенным node_10947.

Вы также можете использовать некоторые фреймворки, такие как JSONKit, для анализа json.

0 голосов
/ 23 февраля 2012

Используйте рамки, указанные Эхабом Амером. Для разбора вы можете использовать этот фрагмент кода

SBJsonParser *sbjasonObj=[[[SBJsonParser alloc]init] autorelease];
NSMutableDictionary *categoriesContainer = [[NSMutableDictionary alloc]initWithDictionary:[sbjasonObj objectWithString:result]];

где результат - JSON как ваш.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...