मेरे अन्य उत्तर के आधार पर समायोजित यहाँ ।
LLDB उपनाम का उपयोग करके बहुत बढ़िया JSON समाधान
✨ कोई कोड की जरूरत ✨
- एक अच्छा json स्वरूपण (इंडेंटेशन, न्यूलाइन्स, आदि) प्राप्त करने के लिए आप अपने lldb टर्मिनल ( स्रोत ) में इस कमांड को चलाकर एक lldb उपनाम को परिभाषित कर सकते हैं :
command regex pjson 's/(.+)/expr print(NSString(string: String(data: try! JSONSerialization.data(withJSONObject: %1, options: .prettyPrinted), encoding: .utf8)!))/'
- आप शायद XCode को खोलने के लिए हर बार उर्फ को फिर से परिभाषित नहीं करना चाहते हैं, इसलिए निम्नलिखित परिभाषा को निम्न परिभाषा में जोड़ें
~/.lldbinit
:
echo "command regex pjson 's/(.+)/expr print(NSString(string: String(data: try! JSONSerialization.data(withJSONObject: %1, options: .prettyPrinted), encoding: .utf8)!))/'" >> ~/.lldbinit
- यह
pjson
उर्फ बना देगा जिसे आप XCode में अपने lldb टर्मिनल में उपयोग कर सकते हैं:
pjson object
निम्न स्विफ्ट ऑब्जेक्ट के लिए आउटपुट की तुलना करना:
let dictionary: Any? = [
"embedded": [
"JustForTheSakeOfTheDemo": 42
],
"A" : "alfa",
"B" : "bravo",
"C" : "charlie",
"D" : "delta",
"E" : "echo",
"F" : "foxtrot"
]
✅ का उत्पादन pjson dictionary
{
"F" : "foxtrot",
"D" : "delta",
"embedded" : {
"JustForTheSakeOfTheDemo" : 42
},
"E" : "echo",
"A" : "alfa",
"C" : "charlie",
"B" : "bravo"
}
❌ का उत्पादन p dictionary
(Any?) $R0 = 7 key/value pairs {
[0] = {
key = "F"
value = "foxtrot"
}
[1] = {
key = "D"
value = "delta"
}
[2] = {
key = "embedded"
value = 1 key/value pair {
[0] = (key = "JustForTheSakeOfTheDemo", value = 42)
}
}
[3] = {
key = "E"
value = "echo"
}
[4] = {
key = "A"
value = "alfa"
}
[5] = {
key = "C"
value = "charlie"
}
[6] = {
key = "B"
value = "bravo"
}
}
❌ का उत्पादन p (dictionary as! NSDictionary)
(NSDictionary) $R18 = 0x0000000281e89710 {
ObjectiveC.NSObject = {
base__SwiftNativeNSDictionaryBase@0 = {
baseNSDictionary@0 = {
NSObject = {
isa = Swift._SwiftDeferredNSDictionary<Swift.String, Any> with unmangled suffix "$"
}
}
}
}
}
❌ का उत्पादन po dictionary
▿ Optional<Any>
▿ some : 7 elements
▿ 0 : 2 elements
- key : "F"
- value : "foxtrot"
▿ 1 : 2 elements
- key : "D"
- value : "delta"
▿ 2 : 2 elements
- key : "embedded"
▿ value : 1 element
▿ 0 : 2 elements
- key : "JustForTheSakeOfTheDemo"
- value : 42
▿ 3 : 2 elements
- key : "E"
- value : "echo"
▿ 4 : 2 elements
- key : "A"
- value : "alfa"
▿ 5 : 2 elements
- key : "C"
- value : "charlie"
▿ 6 : 2 elements
- key : "B"
- value : "bravo"
❌ का उत्पादन po print(dictionary)
Optional(["F": "foxtrot", "D": "delta", "embedded": ["JustForTheSakeOfTheDemo": 42], "E": "echo", "A": "alfa", "C": "charlie", "B": "bravo"])
dump
उदाहरण के लिए, यदि लक्ष्य शब्दकोश का निरीक्षण करना है, तो आप इसका उपयोग कर सकते हैं । stackoverflow.com/documentation/swift/3966/log-in-swift/…