json好久没用了,今天在用到json的时候,发现对字符串做解析的时候总是多出双引号。
代码如下:
string jsonText =
"
{'name':'test','phone':'18888888888'}
";
JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
string zone = jo[ " name "].ToString();
string zone_en = jo[ " phone "].ToString();
JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
string zone = jo[ " name "].ToString();
string zone_en = jo[ " phone "].ToString();
取出来的是"test","18888888888"这样的,研究了好长时间也是不行。
因为用的是Newtonsoft.Json,后来在官网又下载了最新版本,发现取值正确了,取来的test,18888888888
分析原因可就是版本问题,之前用的一直是Newtonsoft.Json.Net20,现在程序框架用的是.net 4.0,下载的最新版本里面对.net各个版本的都有编译文件,很不错。
json比一般格式再复杂点的就像数组一样,有多层嵌套,研究了一下,记录代码如下:
string jsonText =
"
{'name':'test','phone':'18888888888','image':[{'name':'img1','data':'data1'},{'name':'img2','data':'data2'},{'name':'img3','data':'data3'}]}
";
JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
string zone = jo["name"].ToString();
string zone_en = jo["phone"].ToString();
JArray jar = JArray.Parse(jo[
"
image
"].ToString());
MessageBox.Show(zone);
MessageBox.Show(zone_en);
for (var i = 0; i < jar.Count; i++)
{
JObject j = JObject.Parse(jar[i].ToString());
MessageBox.Show(j[
"
name
"].ToString());
MessageBox.Show(j[
"
data
"].ToString());
}
本文探讨了使用Newtonsoft.Json库解析JSON字符串时遇到的问题及解决方法,特别是解析结果中多余的双引号问题,并提供了正确的代码示例。


1307

被折叠的 条评论
为什么被折叠?



