2013-02-19 32 views
2

我有一個序列NSDictionary(其實,這是一個應用程式內購買收據),我發送到node.js服務器:Objective-C的序列化字典,節點JS服務器

{ "key 1" = "val 1"; 
    "key 2" = "val 2"; } 

我想反序列化在服務器端,所以這是我到目前爲止已經完成:上面

var jsonStr = dictStr.replace(/"\s*=\s*"/g, "\":\"").replace(/";\s/g,"\",").replace(/,\s*}/,"}"); 
var obj = JSON.parse(jsonStr); 

代碼工作得很好,但當然我擔心,如果我考慮到了所有可能的情況。這就是爲什麼我更喜歡爲obj-c NSDictionary格式提供真正的解析器。

可能有人能推薦我一個嗎?

回答

2

序列化的NSDictionary在我看來幾乎是JSON,事實上,它與json非常接近,我做了一個簡單的解析器(使用jison),將序列化的NSDictionary解析爲JSON字符串。你可以看看here

+0

不錯,非常感謝! – kovpas 2014-09-03 23:07:34

1

嘗試JSONkit。有NSJSONSerialization,但我認爲JSONKit仍然被證明更快。

+0

我想過在客戶端序列化爲JSON,但首先我想確保我無法在node.js端執行此操作。 – kovpas 2013-02-19 13:35:56

+0

你可以嘗試使用'NSKeyedArchiver'從字典中獲得一個'NSData'對象,然後發送它,然後解碼。如果你只是發送一個簡單的JSON字符串,那可能是過度殺傷。 – 2013-02-19 13:53:21

+0

我發送從Apple的inapp購買服務器獲得的內容 - 使用base64編碼的NSDictionary字符串(請參閱問題中的示例)。我想知道是否有任何解析器允許在JavaScript中解析此格式(不是JSON)。 – kovpas 2013-02-19 14:16:42