2012-08-27 9 views
5

मैं इस प्रारूप की तरह कुछ स्ट्रिंग मान है,आईएसएस 5 में जेएसओएन प्रारूप के रूप में एनएसएसटींग को कैसे परिवर्तित करें?

[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [26] [Hello] [;] 

मैं NSJSONSerialization का उपयोग कर JSON करने के लिए इन तार परिवर्तित करना चाहते हैं।

मैं तार कन्वर्ट करने के लिए निम्नलिखित कोड का उपयोग कर रहा,

for (i = 0; i < [logArray count]; i++) 
{ 
    individualLogInfoArray = [[logArray objectAtIndex:i] componentsSeparatedByString:kDelimitterSpace]; 
    [dictionaryArray addObject:individualLogInfoArray]; 

} 

finalLogDictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys:dictionaryArray,@"Log", nil]; 
    NSError *error; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:finalLogDictionary 
                options:NSJSONWritingPrettyPrinted 
                error:&error]; 

NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
NSLog(@"JsonString = %@",jsonString); 

इस तरह तो मैं हो रही है उत्पादन,

JsonString = { 
    "Log" : [ 
    "[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [26] [Hello] [;]", 
    "[DEBUG] [Tue Aug 21 14:54:22 2012] [ViewController] [27] [hi] [;]", 
    "[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [28] [Its there] [;]", 
    "[PROD] [Tue Aug 21 14:54:22 2012] [ViewController] [29] [Welcome] [;]" 
    ] 
} 

लेकिन मैं इस तरह उत्पादन चाहते हैं,

{ 
"log": "[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [26] [Hello],[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [26] [Hello],[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [26] [Hello]" 

}

मुझे नहीं पता कि उपरोक्त प्रारूप में JSON स्ट्रिंग कैसे उत्पन्न करें, कृपया समाधान का सुझाव दें।

उत्तर

4

जो स्ट्रिंग आप प्राप्त कर रहे हैं वह वैध JSON है, जबकि आप जिस स्ट्रिंग को चाहते हैं वह नहीं है। तो, आप अवैध JSON उत्पन्न करने के लिए आईओएस JSON लाइब्रेरी का उपयोग करने में सक्षम नहीं होंगे।

आप इस ऑनलाइन उपयोगिता का उपयोग करके वैधता का परीक्षण कर सकते हैं,

JSONLint

आशा है कि मदद करता है।

अद्यतन: प्रश्न के बाद से आवश्यक जेएसओएन आवश्यक आउटपुट के रूप में दिखाने के लिए संशोधित किया गया है।

+0

आपकी जानकारी के लिए धन्यवाद –

+0

धन्यवाद। यह मान्य जेसन है, मुझे नहीं पता कि जेसनस्ट्रिंग –

+0

कैसे उत्पन्न करें, अपना खुद का प्रयास करें – Ben10

0

आपका संशोधित प्रश्न अब JSON के रूप में क्रमबद्ध करने से पहले वांछित प्रारूप प्राप्त करने के लिए NSDictionary, NSString और NSArray ऑब्जेक्ट्स में हेरफेर करने का मामला है।

आप एक मुख्य/मान जोड़े युक्त एक शब्दकोश में अपने मूल डेटा में हेरफेर करने की जरूरत है,,

लॉग:

... और फिर serialise कि JSON के रूप में।

अपने लूप में जहां आप प्रत्येक logArray आइटम के लिए ऑब्जेक्ट जोड़ते हैं, तो आप इसके बजाय आवश्यक प्रारूप के साथ संलग्न कर सकते हैं।

संबंधित मुद्दे