/ / स्विफ्ट पार्सिंग जेएसओएन - जेसन, स्विफ्ट

स्विफ्ट पार्सिंग जेएसओएन - जेसन, स्विफ्ट

मैं JSON डेटा प्राप्त करने में सक्षम हूं क्योंकि मैं इसे println का उपयोग करके मुद्रित कर सकता हूं। मैं कुछ अलग-अलग कुंजी भी प्रिंट कर सकता हूं। हालांकि मुझे इसे स्ट्रिंग में परिवर्तित करने में कठिनाई हो रही है।

var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options:     NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
println(jsonResult.count) // works
numberOfStations.text = String(jsonResult.count)
//latitude.text = jsonResult["latitude"] as String
//var result: String = jsonResult["latitude"] as String
let latitudeData : AnyObject? = jsonResult["latitude"]
let longitudeData: AnyObject? = jsonResult["longitude"]

latitude.text = latitudeData as NSString!   // Doesn"t work
longitude.text = longitudeData as NSString! // Doesn"t work
println("latitude --> (latitudeData)")    // Works  prints it ok latitude ---> 40.30303
println("longitude --> (longitudeData)")  //Works   prints it ok longitude ---> 37.20202

इस तरह जेएसओएन

{
latitude: 34.0522342,
longitude: -118.2436849,
station_counts: {
total: 247,
fuels: {
E85: {
total: 0
},
ELEC: {
total: 225,
stations: {
total: 55
}
},
}
}

उत्तर:

उत्तर № 1 के लिए 1

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

latitude.text = latitudeData!.description

उत्तर № 2 के लिए 1

मैं जेसन को पार्स करने के लिए विवरण () के आधार पर अनुशंसा नहीं करता। इस तरह मैं स्विफ्ट में बीएससनिंग कर रहा हूं (बीटा 4)

            //parse Episode Name
if let jsonAsDict = responseObject as? Dictionary<String, AnyObject>
{
if let array: AnyObject = jsonAsDict["episodes"]
{
for item: AnyObject in array as [AnyObject]
{
//put episode name into array
self.episodeNames.append(item["name"] as String)
}
}
}

जेसन के पास यह प्रारूप है:

            episodes: [
{
name: "Episode Name 1"
},
{
name: "Episode Name2"
}
]

self.episodeNames को इस उदाहरण में "var episodeNames: [String]" के रूप में घोषित किया गया है


उत्तर № 3 के लिए 1

आप एक नज़र रखना चाहते हैं SwiftyJSON, गिटहब पर एक ओपन सोर्स लाइब्रेरी जो स्विफ्ट में जेएसओएन प्रसंस्करण को वास्तविक बनाता है।