首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

SliverLight 解析 Json 的有关问题

2013-04-20 
SliverLight 解析 Json 的问题你好,我在 SliverLight 项目中需要去解析一个 ASP.NET WebApi服务提供的json

SliverLight 解析 Json 的问题
你好,我在 SliverLight 项目中需要去解析一个 ASP.NET WebApi服务提供的json数据。
直接浏览 WebApi 服务 Uri 显示数据如下:

----------------------------------------------------------------
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<ArrayOfProduct xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/HelloWebApi.Models">
<Product>
<Category>Groceries</Category>
<Id>1</Id>
<Name>Arthur Jan</Name>
<Price>1.39</Price>
</Product>
</ArrayOfProduct>
----------------------------------------------------------------

SliverLight 解析 JSON 相关程序代码如下:

----------------------------------------------------------------
var buffer = System.Text.Encoding.UTF8.GetBytes(e.Result);
var ms = new MemoryStream(buffer);
var jsonObject = System.Json.JsonObject.Load(ms) as System.Json.JsonObject;

textBox1.Text = e.Result + "\r\n";
textBox1.Text += string.Format("代号:{0},名称:{1},分类:{2},价格:{3}",
                                jsonObject["Id"].ToString(),
                                jsonObject["Category"].ToString(),
                                jsonObject["Name"].ToString(),
                                jsonObject["Price"].ToString()
                              );
----------------------------------------------------------------

e.Result 显示的数据如下:

[{"Id":1,"Name":"Arthur Jan","Category":"Groceries","Price":1.39}]

但是 VS2010 却会在 以下程序区段出现错误:

-----------------------------------
textBox1.Text += string.Format("代号:{0},名称:{1},分类:{2},价格:{3}",
                                jsonObject["Id"].ToString(),
                                jsonObject["Category"].ToString(),
                                jsonObject["Name"].ToString(),
                                jsonObject["Price"].ToString()


                              );
-----------------------------------
错误讯息如下:
SliverLight 解析 Json 的有关问题

感谢回应。 asp.net sliverlight json webapi visualstudio
[解决办法]
[{"Id":1,"Name":"Arthur Jan","Category":"Groceries","Price":1.39}]
这是一个数组。OK?
[解决办法]
你先在Silverlight端设置一个实体,实体属性和值设置为以下:
{"Id":1,"Name":"Arthur Jan","Category":"Groceries","Price":1.39}
然后使用Silverlight自带的JSON类将实体转为JSON字符串,看看和以上代码有什么不同,然后进行纠正。
[解决办法]
[{"Id":1,"Name":"Arthur Jan","Category":"Groceries","Price":1.39}]
这是一个数组被序列化之后的格式。
解决问题参考:
1. 直接反序列化。
2. 用Json类去解析

System.Json.JsonValue ja = System.Json.JsonArray.Parse(jsonString.Trim('[',']'));
string str = ja["Name"].ToString();

热点排行