Just My Life & My Work

[iOS] Object 轉換成 JSON

在iOS中有兩種常用的容器Object,就是DictionaryArray,而現在資料傳輸到伺服器幾乎都在使用JSON,於是就有很多機會要將Object 轉換成 JSON

註:

JSON(JavaScript Object Notation,JavaScript物件表示法,讀作/ˈdʒeɪsən/)是一種由道格拉斯·克羅克福特構想和設計、輕量級的資料交換語言,該語言以易於讓人閱讀的文字為基礎,用來傳輸由屬性值或者序列性的值組成的資料物件。儘管JSON是JavaScript的一個子集,但JSON是獨立於語言的文字格式,並且採用了類似於C語言家族的一些習慣。

JSON 資料格式與語言無關,脫胎自JavaScript,但目前很多程式語言都支援 JSON 格式資料的生成和解析。JSON 的官方 MIME 類型是 application/json,副檔名是 .json。

原以為直接把物件description傳出去就好,後來想想格式根本就不對,在想怎麼跑for迴圈來建立json格式字串。經過兩個多禮拜的思索,搜尋後才發現可以轉兩次,物件(Dictionary或Array)先轉NSData,再轉NSString,如此格式就能被Server所吃~

/**
 Theme: Object to JSON
 IDE: None
 Language: Objective C
 Date: 108/10/22
 Author: HappyMan
 Blog: https://cg2010studio.com/
 */

    NSError *err;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:contentArr options:0 error:&err];
    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

#description的字串如下:

<__NSArrayM 0x107a5abf0>(
{
id = “happy-prints-30s";
“item_price" = “";
quantity = 1;
},
{
id = “happy-l-cover";
“item_price" = “";
quantity = 1;
},
{
id = “happy-cover";
“item_price" = “";
quantity = 1;
},
{
id = “happy-envelope";
“item_price" = “";
quantity = 1;
},
{
id = “happy-envelope";
“item_price" = “";
quantity = 1;
},
{
id = “happy-l-cover";
“item_price" = “";
quantity = 1;
}
)

#先轉NSData再轉NSString的字串如下:

[{“id":"happy-prints-30s","quantity":1,"item_price":""},{“id":"happy-l-cover","quantity":1,"item_price":""},{“id":"happy-cover","quantity":1,"item_price":""},{“id":"happy-envelope","quantity":1,"item_price":""},{“id":"happy-envelope","quantity":1,"item_price":""},{“id":"happy-l-cover","quantity":1,"item_price":""}]

這樣子Facebook Pixel後台應該能判斷了吧:P~

參考:Generate JSON string from NSDictionary in iOSWiKi – JSON

隨意留個言吧:)~

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

標籤雲

%d 位部落客按了讚: