2012-03-21 156 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/

相关问题