मैं एक नौसिखिया हूँ स्विफ्ट तो कृपया मुझे माफ करना अगरयह सवाल बहुत मूर्खतापूर्ण लगता है। मैं एक शब्दकोश एरे आउटपुट से JSON ऑब्जेक्ट बनाने की कोशिश कर रहा हूं जिसमें स्क्वायर ब्रैकेट ("[]") के बजाय प्रत्येक इकाई के बाद कर्ली ब्रैकेट्स ("{}") होना चाहिए। मेरा कोड नीचे दिया गया है।
import UIKit
var locations = Array<Dictionary<String, String>>()
var myLocations = ["pqr","xyz"]
myLocations.forEach {_ in
var dictionary = Dictionary<String, String>()
dictionary["string1"] = "hello"
dictionary["string2"] = "world"
locations.append(dictionary)
}
print(locations)
इसका आउटपुट है: - [["string2": "दुनिया", "string1": "hello"], ["string2": "दुनिया", "string1": "hello"]] n
हालाँकि मुझे इसकी आवश्यकता है: - [{"string2": "दुनिया", "string1": "हैलो"}, {"string2": "दुनिया", "string1": "हैलो"}] n
मुझे पता है कि ऐसा करने का एक तरीका फ़िल्टर का उपयोग करना हैArrays लेकिन मुझे संदेह है कि इसका एक आसान तरीका हो सकता है जिसे मैं स्विफ्ट पर विभिन्न दस्तावेजों के माध्यम से खोजने के बाद नहीं पा रहा हूं। क्या आप कृपया मेरी मदद कर सकते हैं। अग्रिम में धन्यवाद।
उत्तर:
जवाब के लिए 2 № 1आउटपुट है
[["string2": "world", "string1": "hello"], ["string2": "world", "string1": "hello"]]
क्योंकि यह स्विफ्ट शब्दकोशों की एक स्विफ्ट सरणी है।
इस ऑब्जेक्ट को JSON में कनवर्ट करने के लिए, पार्स न करें और पात्रों को स्वयं बदलें, इसके बजाय NSJSONSerialization का उपयोग करें:
do {
let jsonData = try NSJSONSerialization.dataWithJSONObject(locations, options: [])
if let jsonString = String(data: jsonData, encoding: NSUTF8StringEncoding) {
print(jsonString)
}
} catch {
print(error)
}
प्रिंटों:
[{ "String2": "दुनिया", "string1": "हैलो"}, { "string2": "दुनिया", "string1": "हैलो"}]
हम प्रयोग करते हैं dataWithJSONObject
अपनी स्विफ्ट ऑब्जेक्ट को JSON में बदलने के लिए डेटा, तब हम उपयोग करते हैं String(data:, encoding:)
इस JSON डेटा को JSON में बदलने के लिए तार.