首页 新闻 会员 周边

大家怎么结合.net用json

0
悬赏园豆:80 [已解决问题] 解决于 2008-09-26 19:20

我的印象中在ajaxpro中有一个组件是专门用来处理json的,但我没有用过,

我也不知道该如何用,这方面的博文也基本没有,至少中文的我没有看到,还有好像有json.net感觉这个方面的知识我一点都没有,大家辅导辅导我吧

lexus的主页 lexus | 初学一级 | 园豆:0
提问于:2008-09-19 19:51
< >
分享
最佳答案
0

其实不用什么第三方的类库,在.NET Framework对于JSON本来就提供了很好的支持。

1. 使用JavaScriptSerializer,位于命名空间System.Web.Script.Serialization,使用:

序列化为JSON字符串:

Code
User user = new User {
Name
= "TerryLee",
Age
= 20
};

JavaScriptSerializer serializer
= new JavaScriptSerializer();
string result = serializer.Serialize(user);

反序列化:

Code
String input = "";
JavaScriptSerializer serializer
= new JavaScriptSerializer();
serializer.Deserialize
<User>(input);

 

2. 使用DataContractJsonSerializer类,推荐使用这个,这是最新的,位于命名空间System.Runtime.Serialization.Json下,序列化和反序列化分别调用它的WriteObject()和ReadObject()方法就可以了。

所以建议多看看.NET Framework的类库,其实很多功能可能都已经提供了,而无须我们再考虑第三方的了。

TerryLee | 老鸟四级 |园豆:3300 | 2008-09-19 23:10
这个只有在3.5里面或是安装ajax组件之后才这个操作类吧!?
chen eric | 园豆:4 (初学一级) | 2009-12-03 17:02
其他回答(9)
0

建议使用Newtonsoft.Json

//引用Newtonsoft.Json.dll
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
//把Json字符串反序列化为对象
目标对象 = JavaScriptConvert.DeserializeObject(JSON字符串, typeof(目标对象));
//把目标对象序列化为Json字符串
string Json字符串 = JavaScriptConvert.SerializeObject(目标对象);

在.net项目中序列化和反序列:

Code

读取JSON

Code

写入JSON

Code
李永京 | 园豆:3114 (老鸟四级) | 2008-09-19 21:31
0

ASP.NET AJAX不是很好的例子吗?

我记得其实它里面的JSON序列化工具是可以单独使用的,如果只需要一个轻量级的开发框架,那么用它的JSON序列化组件配合jquery这样小巧的js库是很不错的。

JimLiu | 园豆:300 (菜鸟二级) | 2008-09-19 22:08
0

using System.Web.Script.Serialization;
 /// <summary>
    /// Convert a object to a json string
    /// </summary>
    /// <param name="_obj"></param>
    /// <returns></returns>
    public static string ToJson(this object _obj)
    {
        var jss = new System.Web.Script.Serialization.JavaScriptSerializer();
        if (_obj != null)
            return jss.Serialize(_obj);
        return null;
    }
    /// <summary>
    /// Covnert a json format string into a object
    /// </summary>
    /// <returns></returns>
    public static T Eval<T>(this string _objJsonString)
    {
        var jss = new System.Web.Script.Serialization.JavaScriptSerializer();
        try
        {
            return jss.Deserialize<T>(_objJsonString);
        }
        catch
        {
            return default(T);
        }
    }

Jeremy Liu | 园豆:705 (小虾三级) | 2008-09-19 22:50
0

Json本是一种独立于语言的轻量级的数据交换格式,javascript能轻松的处理这类数据格式,故做为服务器端和客户端来回传值的一种格式。如楼上所说下边我ASP.net AJAX来做个例子(典型的用法)。

通过客户端调用web service来能方便转成json格式的string,然后在客户端转向成json对象进行访问.

环境:vs2008+.net framemwork3.5

客户端调用代码: 

Code

Web Service代码:

 

Code

结果:

ID为JsonString的span将显示:{"Age":28,"Headship":"程序员","UserName":"王二"}

ID为JsonValue的span将显示: 王二

代码是经过调试的,如果需要整个实例请提供邮箱。

加冰的可乐 | 园豆:410 (菜鸟二级) | 2008-09-19 23:04
0

深入了解框架确实意义非凡。至少少走了很多弯路。

陛下 | 园豆:3938 (老鸟四级) | 2008-09-19 23:27
0

给个建议百度一个..呵呵...

Jared.Nie | 园豆:1940 (小虾三级) | 2008-09-20 10:17
0

JSON:JavaScript Object Notaion,是javascript的轻量级对象,格式楼上的已经说了。用不用框架都无所谓的。

码尔代夫iimax | 园豆:3138 (老鸟四级) | 2008-09-20 13:00
0

 JSONWriter provides a quick and convenient way of producing JSON text
 
http://www.json.org/javadoc/org/json/JSONWriter.html
 
And Yahoo! UI Library: JSON utility may be helps:
http://developer.yahoo.com/yui/json/
 
And there are many resources about JSON cooperate with ASP.NET:
 
http://www.json.org/
 
The Json.NET library makes working with JavaScript and JSON formatted data in .NET simple
http://james.newtonking.com/pages/json-net.aspx
 
Server side deserialization and elaboration of JSON data returned from a Web Service
http://hi.baidu.com/freezesoul/blog/item/5115d209f1623481d0581b69.html
 
How to convert XML to JSON in ASP.NET C#
http://www.phdcc.com/xml2json.htm

LanceZhang | 园豆:857 (小虾三级) | 2008-09-23 21:46
1

很简单,找一个DEMO多练习

zjy | 园豆:3194 (老鸟四级) | 2008-09-24 17:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册