2011-11-06 75 views
0

我是JSON的新手,需要使用以下格式創建對象。在iOS中使用JSON發送數據收據

{ 
    "receipt-data" : "(actual receipt bytes here)" 
    "password"  : "(shared secret bytes here)" 
} 

我需要填入"(actual receipt bytes here)"NSData變量),並且其中"(shared secret bytes here)"在IOS的數。我對我如何創造它感到困惑。

謝謝先進。

+0

JSON不能用於發送純二進制數據。 Apple可能需要您以base64編碼形式或類似方式(將二進制數據轉換爲可打印字符)發送數據。你應該先檢查一下。 –

+0

我正在將nsdata對象轉換爲base64編碼。 –

回答

-5

基本上你會說

[NSString stringWithFormat:@"{\"receipt-data\":\"%@\",\"password\":\"%@\"}", receiptDataString, passwordString] 

如果receiptDataString不是一個NSString你必須將其轉換爲一個莫名其妙。可能使用Base64編碼。 (遺憾的是,目標C沒有標準/常用的Base64編碼器/解碼器。)

如果密碼是int而不是NSString,則將第二個%@更改爲%d。

+1

這真是一個糟糕的建議。您需要正確轉義JSON字符。如果密碼例如包含一個「字符,那麼這個方法會產生無效的JSON。 –

3

這的確很簡單。您創建一個NSDictionary與那些receipt-entrypassword對象。然後,您可以使用任何可用的開源JSON框架或iOS5中的內置JSON API,並將NSDictionary序列化爲包含JSON數據的NSString。

不要手動做。你想要正確編碼/轉義JSON。這是JSON框架爲你做的。