



Installation • Nutzung • Lizenz
Dynamicjson ist ein dynamisch getippter JSON -Parser, der auf der von Chris Lattner in Swift 4.2 eingeführten @dynamicMemberLookup -Funktion basiert. Auf diese Weise können wir auf beliebige Objektmitglieder zugreifen, die zur Laufzeit aufgelöst werden, sodass Swift in Bezug auf JSON so flexibel wie JavaScript sein kann.
if let jsonObject = try ? JSONSerialization . jsonObject ( with : data , options : [ ] ) as? [ String : Any ] ,
let user = jsonObject [ " user " ] as? [ String : Any ] ,
let username = user [ " username " ] as? String {
// ...
} let username = JSON ( data ) . user . username . string pod 'DynamicJSON' , '~> 2.0.2' (Wenn Sie auf Probleme stoßen, pod repo update und versuchen Sie es erneut)
github "saoudrizwan/DynamicJSON"DynamicJSON.swift in Ihr Projekt. import DynamicJSON in die Dateien, die Sie verwenden möchten.
Werfen Sie Any in ein JSON -Objekt, um loszulegen
let json = JSON ( Data ( ) )
JSON ( 123 )
JSON ( [ " key " : " value " ] )
JSON ( [ " element " , 1 ] )
JSON ( " Hello world " )
JSON ( false ) ... oder werfen einen buchstäblichen als JSON
let json = " Hello world " as JSON
123 as JSON
[ 1 , 2 , 3 ] as JSON
let user : JSON = [
" username " : " Saoud " ,
" age " : 21 ,
" address " : [
" zip " : " 12345 " ,
" city " : " San Diego "
]
] Behandeln Sie JSON -Objekte wie Sie im JavaScript -Land sind
let dictionary = json . dictionary
let array = json [ 0 ] . cars . array
let string = json . users [ 1 ] . username . string
let nsnumber = json . creditCard . pin . number
let double = json [ 3 ] [ 1 ] . height . double
let int = json [ 0 ] . age . int
let bool = json . biography . isHuman . bool Beachten Sie, wie JSON keine Eigenschaften wie cars oder users hat. Stattdessen verwendet es dynamische Mitgliedersuche, um seine zugehörigen JSON -Daten zu durchqueren, um das von Ihnen gesuchte Objekt zu finden.
Falls Sie einen Schlüssel haben, der beispielsweise eine tatsächliche Eigenschaft description JSON oder number ist, verwenden Sie einfach den String -Subscript -Accessor wie SO:
let number = json . account . contact [ " number " ] . number
let description = json . user . biography [ " description " ] . string JSON entspricht Comparable
let json1 = JSON ( jsonData1 )
let json2 = JSON ( jsonData2 )
// Equality applies to all types (Dictionary, Array, String, NSNumber, Bool, NSNull)
let isEqual = json1 == json2
// Less/greater than only applies to NSNumbers (Double, Int) and Strings
let isLessThan = json1 < json2
let isLessThanOrEqual = json1 <= json2
let isGreaterThan = json1 > json2
let isGreaterThanOrEqual = json1 >= json2Print für Debug -Zwecke
print ( json )In Rohobjekt konvertieren
let anyObject = json . object Auf Data konvertieren
let data = json . data ( ) // optionally specify options...Dynamicjson verwendet die MIT -Lizenz. Bitte stellen Sie ein Problem ein, wenn Sie Fragen haben oder mitteilen möchten, wie Sie Dynamicjson verwenden.
Dynamicjson steckt in den Kinderschuhen, bietet aber die Barebones einer revolutionären neuen Art, mit JSON in Swift zusammenzuarbeiten. Bitte senden Sie Pull -Anfragen aller Funktionen, von denen Sie glauben, dass sie Dynamicjson und seine Philosophie erweitern würden.
Kontaktieren Sie mich per E -Mail an [email protected] oder von Twitter @sdrzn. Bitte erstellen Sie ein Problem, wenn Sie auf einen Fehler stoßen oder möchten, dass eine Funktion hinzugefügt wird.
@dynamicMemberLookup