gpt4 book ai didi

json - DataContractJsonSerializer 在字符串中留下引号

转载 作者:行者123 更新时间:2023-12-01 12:59:22 25 4
gpt4 key购买 nike

我在 Windows Phone 7.1 (Mango RC) 上使用 DataContractJsonSerializer 从网络服务中提取数据。来 self 的 Web 服务的数据如下所示:

[
{
"Color":"\"black\"",
"CurrentPlayerTurn":1,
"GameId":"\"3adbffa7b5744634aca0e4b743014247\"",
"GameState":0,
"OtherPlayerId":null
},
{
"Color":"\"black\"",
"CurrentPlayerTurn":1,
"GameId":"\"a292247719e34811a93598d2ff3eb13c\"",
"GameState":0,
"OtherPlayerId":"\"shmoebob\""
}
]

如果您想知道,此数据是 CouchDB map/reduce 查询的下游,其输出如下所示:

{"total_rows":4,"offset":1,"rows":[
{"id":"3adbffa7b5744634aca0e4b743014247","key":"kotancode","value":[0,1,"black",null]},
{"id":"a292247719e34811a93598d2ff3eb13c","key":"kotancode","value":[0,1,"black","shmoebob"]}
]}

在我的 WP7.1 客户端中发生的事情是,当我从第一个 JSON blob 反序列化对象数组时,我实际上是在字符串中获取引号,我必须逐个属性地手动去除它们。

我的 WP7.1 客户端访问的 Web 服务是 v0.5 WCF Web API RESTful 服务,我将该数据公开为 JSON。

我在这个管道的某处做错了什么导致引号按字面意思处理......或者我可以用 DataContractJsonSerializer 做些什么来让它实际上不给我引号?

最佳答案

这种情况一直发生在我身上。我一发布问题,我就想出了答案。问题在于我如何使用 JsonValue 来解析来自 CouchDB 的信息。

错误的方式:

string color = (row["value"] as JsonArray)[2].ToString(); // this embeds double-quotes

正确的方法:

string color = (row["value"] as JsonArray)[2].ReadAs<String>(); // this doesn't embed double-引号。

希望这对可能遇到同样问题的其他人有所帮助...

关于json - DataContractJsonSerializer 在字符串中留下引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com