silverlight中使用Json读取数据
假定按照 如何:对基于 HTTP 的服务发出请求中描述的方法向基于 HTTP 的 Web 服务发出请求后,在 Stream 类型的 responseStream 对象中返回了下列 JSON。
{"IsMember" : true, "Name" : "John", "Age" : 24}
使用 DataContractJsonSerializer
定义 User 类型来反序列化 JSON。
{
public bool IsMember { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
不 需要将某个类型或该类型的具有特殊属性的成员标记为选择反序列化,因为所有 public 成员都自动包括在数据协定中。这是数据协定编程模型的简化版本,该模型要求为要包括在数据协定中的每个成员附加 DataMemberAttribute 属性,并为每个类型附加 DataContractAttribute 属性。当前编程模型启用成员的名称和可见性来决定它是否序列化。有关更多信息,请参见 “Silverlight 序列化”。
下列代码显示如何创建 DataContractJsonSerializer 的实例,并使用它将 responseStream 反序列化为 User 对象。
new DataContractJsonSerializer(typeof(User));
User user = (User)serializer.ReadObject(responseStream);
bool isMember = user.IsMember;
string name = user.Name;
int age = user.Age;
使用 JsonObject 和 LINQ
Silverlight 提供了 JsonPrimitive、 JsonArray 和 JsonObject 类型,这些类型允许您以弱类型方式处理 JSON。此方法允许您动态地访问基元 JSON 类型(string、number、Boolean)的值,并索引为结构化 JSON 类型(object 和 array),而不需要预定义反序列化的目标类型(例如 User 类型)。下列代码演示如何执行此操作。
bool isMember = user["IsMember"];
string name = user["Name"];
int age = user["Age"];
使用 JsonObject 和 LINQ 可以方便地处理复杂的 JSON 对象。例如,假定在 Stream 类型的 responseStream 对象中包含下列 JSON。
{"IsMember" : false, "Name" : "Paul", "Age" : 44},
{"IsMember" : true, "Name" : "George", "Age" : 12}]
若要检索作为成员的所有人员,请对 JsonArray 对象使用以下 LINQ 查询。
var members = from member in users
where member["IsMember"]
select member;
foreach (JsonObject member in members)
{
string name = member["Name"];
int age = member["Age"];
}
(*)友情提示:Silverlight要是使用以上的类需要手动添加相关引用.
DataContractJsonSerializer (位于 System.Runtime.Serialization.Json)引用System.ServiceMode.Web
JsonObject (位于System.Json,将JSON数据流转换成为可读写的对象)
JsonArray (位于System.Json, 对JSON数据流转换成为JsonObject数组形式,可支持LINQ查询)
如果要引用System.Runtime.Serialization.Json名空间里的Json, 则必须也引用System.ServiceModel, 否则Json会无法使用。
silverlight中使用Json读取数据的更多相关文章
- struts2中从后台读取数据到<s:select>
看到网上好多有struts2中从后台读取数据到<s:select>的,但都 不太详细,可能是我自己理解不了吧!所以我自己做了 一个,其中可能 有很多不好的地方,望广大网友指出 结果如图 p ...
- SpringMVC中使用Json传数据
在web项目中使用Json进行数据的传输是非常常见且有用的,在这里介绍下在SpringMVC中使用Json传数据的一种方法,在我的使用中,主要包括下面四个部分(我个人喜好使用maven这类型工具进行项 ...
- 在JSP页面中输出JSON格式数据
JSON-taglib是一套使在JSP页面中输出JSON格式数据的标签库. JSON-taglib主页: http://json-taglib.sourceforge.net/index.html J ...
- JSON(三)——java中对于JSON格式数据的解析之json-lib与jackson
java中对于JSON格式数据的操作,主要是json格式字符串与JavaBean之间的相互转换.java中能够解析JSON格式数据的框架有很多,比如json-lib,jackson,阿里巴巴的fast ...
- http中使用json封装数据的性能测试
http中使用json封装数据的性能测试 一个项目使用json封装数据,接口例如: 客户端发送: POST /list.do HTTP/1.1 Host: zoomi.com.cn ...
- python之从文件中按行读取数据
#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = 'jiangwenwen' # 从文件中按行读取数据 file = open(& ...
- IT项目中使用 json格式数据 保存项目配置信息, 在配置文件再读取json文件的内容进行赋值
json格式小巧玲珑,适合做配置文件,特别是大型项目中, 可以将配置信息分类保存到不同的json文件中, 然后再在配置文件中读取配置文件的数据进行赋值, 这里以python为例进行说明: 假设在you ...
- JAVA中使用JSON进行数据传递
最近在做一个基于JAVA Servlet的WEB应用以及对应的Anroid应用客户端的开发工作. 其中,在接口的访问和数据的传输方面使用的比较多的是使用JSON对象来操作格式化数据:在服务器端采用JS ...
- 转载:JAVA中使用JSON进行数据传递
转载网址:http://www.cnblogs.com/undead/archive/2012/07/18/2594900.html 最近在做一个基于JAVA Servlet的WEB应用以及对应的An ...
随机推荐
- matlab的绘图保存
matlab的绘图和可视化能力是不用多说的,可以说在业内是家喻户晓的.Matlab提供了丰富的绘图函数,比如ez**系类的简易绘图函数,surf.mesh系类的数值绘图函数等几十个.另外其他专业工 ...
- 配置Android SDK 开发环境(转)
1. 下载Eclipse 在前面我们配置好了JDK环境后,就可以开始配置Android的集成开发环境了,官方Google推荐的集成开发环境为Eclipse,所以我们就以Eclipse作为集成开发环境. ...
- [SQL注入1]From SQL injection to Shell
第一次写,希望大神们多指点. 对于刚接触WEB渗透测试这块的朋友们,很希望能有个平台可以练习.网络上有不少,十大渗透测试演练系统,我这里推荐一个在10以外,适合初学者一步一步进步的平台PENTESTE ...
- python中的嵌套类(内部类调用外部类中的方法函数)
在为书中版本是3.X的,但2.X不太支持直接调用. 所以,在PYTHON2.X中,要在内部类中调用外部类的方法,就必须得实例化外部类,然后,传入实例进行调用. 花了我两个小时啊,资料没找到,自己一个一 ...
- WINDOWS+NGINX+DJANGO+FLUP+PYTHON起步~
参考的文档是 http://blog.163.com/sky20081816@126/blog/static/1647610232010824262695/ 但在实操时,作了更改之后才生效,就是#in ...
- 有关WCF的契约问题
WCF中的契约包括4种 数据契约 DataContract ->DataMember 服务契约 ServiceContract-> OperactionContract 消息契约 Mess ...
- LeetCode 191. Number of 1 Bits Question
题意:给你一个整数,计算该整数的二进制形式里有多少个“1”.比如6(110),就有2个“1”. 一开始我就把数字n不断右移,然后判定最右位是否为1,是就cnt++,否则就继续右移直到n为0. 可是题目 ...
- C++中的重载、覆盖、隐藏
前几天面试时被问及C++中的覆盖.隐藏,概念基本答不上来,只答了怎么用指针实现多态,也还有遗漏.最终不欢而散.回来后在网上查找学习了一番,做了这个总结.其中部分文字借用了别人的博客,望不要见怪.引用的 ...
- PyCharm常用设置
pycharm,优秀的python开发工具 本文介绍一点python开发工具,pycharm的使用方式. 内容仅仅为最常用的几点,想要了解更多,请自行谷歌. 1.常用工具栏 唤出常用工具栏,View ...
- Swift 新语言开发
全书文件夹: 一.Welcome to Swift 二.Language Guide 三.Language Reference /* 译者的废话: 几个小时前熬夜看了WWDC,各种激动,今年非常有料啊 ...