C#中已经有JavaScriptSerializer类可以将json数据给反序列化为对象
/// <summary>
/// JSON文本转对象,泛型方法
/// </summary>
/// <typeparam name=”T”>类型</typeparam>
/// <param name=”jsonText”>JSON文本</param>
/// <returns>指定类型的对象</returns>
public static T JSONToObject<T>(string jsonText)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
try
{
return jss.Deserialize<T>(jsonText);
}
catch (Exception ex)
{
throw new Exception(“JSONHelper.JSONToObject(): ” + ex.Message);
}
}
但像我这样的懒人是不想事先定义好一个类的,我就是想直接解析客户端传过来的json数据,还是使用MSScriptControl.ScriptControl吧。
有了eval方法,想怎么搞就怎么搞
//构建scriptcontrol读取客户端传递过来的json数据
MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
sc.Language=”JScript”;
sc.AddCode(“var jsonObject=”+data );//data为提交的json文本
然后就可以根据json的结构用eval了,js里怎么写就怎么写。
如sc.Eval(“jsonObject.content.length”)
sc.Eval(“jsonObject.itemValue”)
要使用MSScriptControl需要引用com组件 Microsoft Script Control 1.0。