這裏是簡化的JSON文件,我需要從網絡服務下載它並在表中解析結果!用AFNetworking解析JSON給圓括號帶來的結果
編輯:我現在提供更精確的代碼,通過在線工具清理和格式化:
{
"main": [
{
"id": 0, <--- float value
"type": "type0", <--- STRING value
"valueA": {
"valueA1": 1, <--- float value
"valueA2": 2, <--- float value
"valueA3": 3 <--- float value
},
"valueB": {
"valueB1": 1, <--- float value
"valueB2": 2 <--- float value
},
"valueC": [
{
"valueC1": "string0C1", <--- STRING value
"valueC2": 2, <--- float value
"valueC3": 3, <--- float value
}
]
},
通過在線工具jsonviewer.stack.hu FORMATTED:
我需要用AFJSONRequestOperation解析它,然後我寫下這段代碼:
NSMutableArray *main = [JSON objectForKey:@"main"];
arrayID = [main valueForKey:@"id"];
arrayType = [main valueForKey:@"type"];
NSMutableArray *arrayValueC = [main valueForKey:@"valueC"];
NSMutableString *stringC1 = [arrayValueC valueForKey:@"valueC1"];
// I CANT USE objectForKey, XCode give an exception -[__NSArrayI objectForKey:]: unrecognized selector sent to instance
NSLog(@"id: %@",arrayID);
NSLog(@"type: %@",arrayType);
NSLog(@"string: %@",stringC1);
當我分析,我得到這個結果從NSLog的:
id: (
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
)
type: (
type0,
type1,
type2,
type3,
type4,
type5,
type6,
type7,
type8,
type9
)
string: (
(
"string0C1"
),
(
"string2C1"
),
(
"string2C1"
),
(
"string3C1"
),
(
"string4C1"
),
(
"string5C1"
),
(
"string6C1"
),
(
"string7C1"
),
(
"string8C1"
),
(
"string9C1"
)
)
就像你看到的一切完美,我可以推斷ID(浮動)和TYPE(串)的每一個值,但我討厭圓在valueC1字符串的每個對象中都有括號:我怎樣才能得到沒有括號和引號的乾淨的值C1?請如果你能提供一些代碼。謝謝!
感謝科多,但它不是我的JSON,我需要從網上下載它,並解析;我用在線工具格式化了這些結果。我現在編輯我的問題,以提供更精確和更清晰的代碼:objectForKey給我一個例外。請你能幫助我嗎? – Huxley
@Huxley:感謝你的例外。他們告訴你你在哪裏鑄造了一個錯誤類型的對象。目前,實際上對象是* NSDictionary *,* NSArray *和* NSString *實例時,您使用* NSMutableDictionary *,* NSMutableArray *和* NSMutableString *。 – Codo
很抱歉,我很感激這個例外。但即使使用NSDictionary,NSArray和NSString在NSMutable的地方...我得到同樣的錯誤:無法識別的選擇器。而且,對於數組和字典的所有組合,對於循環和鍵值,我實際上看不到括號和引號從「valueC1」字符串中消失。也許我需要一些代碼來識別確切的問題。 – Huxley