所谓Json数据,其实就是js里面 字符字面量 和 对象字面量 的组合而已。
形如:
{
"name" : "n",
"value" : "10",
"id" : "1",
"items" : [
{"key1" : "value1"},
{"key2" : "value2"}
]
}
的数据
在js里面可以直接用eval将这串文本生成数组或对象的实例
下面主要简单描述一下在.net里面是用Jayrock操作json数据的方法。
jayrock是一个开源的.net库,采用C# 1.1开发。 该库在.net 2.0里面仍可以正常是用。 之所以选择这个库主要是因为它是开源的,碰到问题可以直接找源代码看,比较容易定位错误。
下载地址:http://jayrock.berlios.de/#quick-start
编译好的有2个dll, Jayrock.Json.dll 和 Jayrock.dll。 如果只想是用它的json功能, 就只是用Jayrock.Json.dll已经足够了!
Jayrock.Json 库里面比较重要的几个对象: 首先是:JsonConvert,其次是:JsonReader 和JsonWriter 等(这些类的使用方法类似xml类)
下面介绍主要介绍一下对JsonConvert的使用
1.引用命名空间:
using Jayrock.Json;
using Jayrock.Json.Conversion;
主要代码
string json_config = @"
{
'Name' : 'my-config',
'Desc' : 'test',
'Inputs' : [
{
'Name' : 'mobile',
'Desc' : '手机',
'InputType' : 'Mobile',
'Default_Value' : '133'
}
]
}";
Response.Write("read json data by JsonConvert.Import!<br>");
string separator = new string('-', 100) + "<br>";
Response.Write(separator);
Response.Write("读入到指定类:<br>");
Config config = JsonConvert.Import(typeof(Config), json_config) as Config;
Response.Write("config name: " + config.Name + "<br>");
Response.Write("config desc: " + config.Desc + "<br><br>");
Input input = config.Inputs[0];
Response.Write("config input-name: " + input.Name + "<br>");
Response.Write("config input-desc: " + input.Desc + "<br>");
Response.Write("config input-type: " + input.InputType + "<br>");
Response.Write(separator);
Response.Write("读入到JsonObject对象:<br>");
JsonObject jo = JsonConvert.Import(json_config) as JsonObject;
Response.Write("config name: " + jo["Name"] + "<br>");
Response.Write("config desc: " + jo["Desc"] + "<br><br>");
JsonArray ja = jo["Inputs"] as JsonArray;
foreach(JsonObject o in ja)
{
Response.Write("config input-name: " + o["Name"] + "<br>");
Response.Write("config input-desc: " + o["Desc"] + "<br>");
Response.Write("config input-type: " + o["InputType"] + "<br>");
}
Response.End();
注意,第二种方法,由于是采用以key做索引的方式,因此必须和json数据中的key大小写一致!
输出页面是:
read json data by JsonConvert.Import!
----------------------------------------------------------------------------------------------------
读入到指定类:
config name: my-config
config desc: test
config input-name: mobile
config input-desc: 手机
config input-type: Mobile
----------------------------------------------------------------------------------------------------
读入到JsonObject对象:
config name: my-config
config desc: test
config input-name: mobile
config input-desc: 手机
config input-type: Mobile
分享到:
相关推荐
Jayrock.Json中基本是以JsonArray和JsonObject的转换来实现以键值方式读取json数据,我是将取得的数据放入DataTable中,后来想想这样也有好处,前台的UI可以随意设计,最终绑定到DataTabel即可。
Jayrock.Json的使用相对简单,它提供了JsonConfiguration类来配置序列化行为,并通过JsonRuntime和JsonExporter类进行实际的数据转换。 Newtonsoft.Json,又称为Json.NET,是James Newton-King开发的另一款广受欢迎...
string jsonString = Encoding.UTF8.GetString(ms.ToArray()); ms.Close(); return jsonString; } /// <summary> /// /// JSON反序列化 /// /// </summary> public static T JsonDeserialize(string json...
Jayrock开源项目实现了Json对象序列化,后台逻辑的远程调用,方便你将一些成熟的js框架(如ext)添加到项目中来。 压缩包中包含Jayrock.dll、Jayrock.Json.dll、json.js,若要找寻完整的例子,官方下载地址为:...
JSON-RPC使用JSON(JavaScript Object Notation)作为数据交换格式,因为JSON具有简洁、易于理解和解析的特性,所以广泛应用于分布式系统中的跨语言通信。 在"Jayrock及实例"这个主题中,我们主要关注的是如何使用...
在JavaScript中,你可以使用JSON.parse()解析JSON字符串,或者用JSON.stringify()将JavaScript对象转换成JSON格式。 在ASP.NET中实现异步通信,通常是为了提高用户体验,避免用户等待服务器响应时页面冻结。在ASP...
《json2.js:JavaScript中的JSON解析与序列化》 在Web开发中,JSON(JavaScript Object ...理解并熟练运用JSON.parse()和JSON.stringify(),可以帮助我们更有效地在JavaScript环境中进行数据的序列化和反序列化操作。
【标题】"Joyrock Asp.net Demo"是一个基于...这个示例项目对于那些想要学习如何在.NET平台上使用JSON和实现异步处理的开发者来说,是一个宝贵的资源。通过实际操作和调试这个项目,可以深化对相关技术的理解和应用。
Jayrock使得.NET应用程序能够与使用JSON协议的其他服务进行通信,简化了跨平台的数据交换。 LINQ(Language Integrated Query,语言集成查询)是.NET Framework 3.5引入的一个强大的查询工具,特别适合处理数据集合...
- `jayrock`:JayRock是另一个.NET下的JSON编解码器,可以将.NET对象转换为JSON格式或反向操作。 在"asp.netToJson转换类"的源代码中,我们可以期待看到以下关键部分: 1. `序列化`方法:将C#对象转换为JSON字符串...
相反,JSON解码器可以接收JSON字符串并将其解析成.NET对象,这样就可以在.NET环境中直接操作这些数据。JSON-RPC组件则扩展了这一功能,允许以远程调用的方式执行服务器上的方法,使得客户端可以像调用本地方法一样...
LINQ.js是由Jayrock团队开发的一个开源库,它将C#中的LINQ概念移植到JavaScript中,使开发者可以使用类似于SQL的查询语法来处理JavaScript数组和对象。这极大地提高了代码的可读性和可维护性,尤其是在处理复杂的...
通过cURL或sockets HTTP 传输支持JSON-RPC或REST API 端点 $ options = array ( 'uri' => 'http://www.raboof.com/projects/jayrock/demo.ashx' , 'jsonrpc' => '2.0' );$ client = new \ Client \ JsonRPC ( $ ...
* 数据库(文本) ↑ DAL(DATA Access Layer) 数据存取层 --DLL ↑ BLL(BusinessLogicalLayer)交换逻辑层 --DLL ↑ UIL(UserInterfaceLayer)用户接口层 --调用