2012-03-21 83 views
1

我爲我的網站使用了第三種服務,它以簡單的JSON字符串返回數據,問題在於JSON密鑰名稱未包含在引號中。處理格式不正確的JSON字符串的最佳方法是什麼?

例如,既ServiceStack.Text.JsonObject.ParseSystem.Json.JsonObject.Parse未能獲得正確的JSON對象:

{ firstName: "Tien", lastName: "Do", title: "Developer" } 

System.Web.Helpers.Json.Decode做得很好,當然鉻/ FF還可以顯示上述JSON字符串正確。

引用的密鑰名稱始終需要嗎?有沒有其他的方法來解析這個字符串與ServiceStack.Text?

+2

您可以聯繫第三方並要求他們停止說謊併發送實際的JSON嗎? – SLaks 2012-03-21 06:17:08

+0

我不能,這是一項公共服務。 – 2012-03-23 03:38:10

+0

公共服務也由人來運作。您可以與他們聯繫。 – SLaks 2012-03-23 04:48:29

回答

1

根據http://jsonlint.com/密鑰必須加引號。

當然,您始終可以使用JavaScript JSON庫從您從服務器獲取的JS對象生成正確的JSON。 JSON.stringify(myObject)將產生正確的JSON字符串。

+0

謝謝,但我沒有在這種情況下使用JavaScript。 – 2012-03-23 03:35:59

+0

當然,我相信你的語言中有相應的語言。我沒有使用c#,但json.org列出了一堆庫。這裏是一個:http://sourceforge.net/projects/csjson/ – dbrin 2012-03-23 03:37:51

+0

當然,我只是注意到,我要求另一個/更好的「C#解決方案」(如果有的話)。 System.Web.Helpers.Json.Decode可以處理這種情況。 – 2012-03-23 03:44:18

2

你應該使用"始終

這樣的:

{ 
    "firstName": "Tien", 
    "lastName": "Do" 
} 

嘗試驗證與http://jsonlint.com/

相關問題