2016-11-22 4 views
0

のためのJSONを作成します。私は[NSObject:AnyObject]スウィフトは、私はAPIのRESTからの送信のためのJSONを作成する必要があるAPIをREST

var d1 : [NSObject:AnyObject] = ["ownId":"seu_identificador_proprio", "customer":""] 
    let dd1 = ["currency":"BRL"] 
    let dd2 = ["shipping":"1000"] 
    let arr = [d1] 
    let d = try! NSJSONSerialization.dataWithJSONObject(arr, options: NSJSONWritingOptions.PrettyPrinted) 
    let s = NSString(data: d, encoding: NSUTF8StringEncoding)! as String 
    print(s) 
で始めてみてください。..

{ 
    "ownId": "seu_identificador_proprio", 
    "amount": { 
    "currency": "BRL", 
    "subtotals": { 
     "shipping": 1000 
    } 
    }, 
    "items": [ 
    { 
     "product": "Descrição do pedido", 
     "quantity": 1, 
     "detail": "Mais info...", 
     "price": 1000 
    } 
    ], 
    "customer": { 
    "ownId": "seu_identificador_proprio_de_cliente", 
    "fullname": "Jose Silva", 
    "email": "[email protected]", 
    "birthDate": "1988-12-30", 
    "taxDocument": { 
     "type": "CPF", 
     "number": "22222222222" 
    }, 
    "phone": { 
     "countryCode": "55", 
     "areaCode": "11", 
     "number": "66778899" 
    }, 
    "shippingAddress": { 
     "street": "Avenida Faria Lima", 
     "streetNumber": 2927, 
     "complement": 8, 
     "district": "Itaim", 
     "city": "Sao Paulo", 
     "state": "SP", 
     "country": "BRA", 
     "zipCode": "" 
    } 
    } 
} 

私が作成して混乱しています

しかし、私は助けが必要です!

+0

スイフト3を使用していますか? – dirtydanee

+0

いいえ、swift 2.3 @dirtydanee –

+0

あなたの質問は何ですか?あなたが投稿したコードの何が間違っていますか? (BTW、あなたのJSON出力をNSDataから文字列に変換するテスト以外の理由はなく、かなりの印刷形式を使用する理由もありません)RESTfulなサーバーに送信する場合は、pretty形式は使用しないでください。 –

答えて

1

コードを更新してヒントを追加しました。どのように上記の構造を構築できますか。ハッピーコーディング!

// Do not use NSObject as key's type 
// Keys in a dictionary are usually Strig in every language 
var d1: [String: AnyObject] = ["ownId":"seu_identificador_proprio", "customer":""] 

// Define the type of your dictionaries, if you dont, in this case it will create a [String:String] dictionary, but you need to insert an array into it 
// Make it a var, so you can mutate the container 
var dd1: [String: AnyObject] = ["currency":"BRL"] 
// Here the type is undefined. Try inserting anything else than String, and see the results 
let dd2 = ["shipping":"1000"] 
dd1["subtotals"] = dd2 
d1["amount"] = dd1 
// Build all your dictionaries like i did above, and at the end add all of them into arr 
let arr = [d1] 
// Do not force try any throwing function in swift - if there is an error, your application will crash 
// Use proper error handling - https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html 

do { 
let d = try NSJSONSerialization.dataWithJSONObject(arr, options: NSJSONWritingOptions.PrettyPrinted) 
let s = NSString(data: d, encoding: NSUTF8StringEncoding)! as String 
print(s) 
} catch { 
// Do your error handling here 
} 
+0

とてもいいです!ありがとうございました; D –

+0

答えとして受け入れられるか、少なくともそれ以上のものをアップしてください? – dirtydanee

+0

私はあなたのコードを理解している、今私は私のアプリのカスタム、おかげで、私は他の質問がある場合は、私はここに投稿! –

関連する問題