VER=1.0&MSG=10224&WPARAM=140068440&LPARAM=278&DATA={"data":{"x":{"precision":2,"subtype":"","type":"array","unit":" ","value":[-23.93000030517578]},"y":{"precision":2,"subtype":"","type":"array","unit":" ","value":[-8.890000343322754]}},"devtype":"DAIS","msg":"multidata","netid":1128,"nodid":2501,"nvsid":2001181,"version":2}
&
Js:
var DATA='[{"data":{"x":{"precision":2,"subtype":"","type":"array","unit":" ","value":[-23.93000030517578]},"y":{"precision":2,"subtype":"","type":"array","unit":" ","value":[-8.890000343322754]}},"devtype":"DAIS","msg":"multidata","netid":1128,"nodid":2501,"nvsid":2001181,"version":2}]'; eval(DATA);
首先你的DATA后面,不是完整的json格式。需要不全中括号,然后在C#中用自带的或第三方控件,处理好即可。
FastJson,LitJson,Json.Net等
用什么编程语言解析?
c#
@小..布丁: 用Json.NET可以轻松搞定
这个有好多插件可以用的,把字符串变成对象。
如:http://www.cnblogs.com/pen-ink/archive/2011/10/06/2199715.html
其它的没有什么好解析的
json结构很简单。
一对”[]“表示一个数组,“[]”中间每一个“{}"都是数组的一个元素。
{}表示一个对象,{}内每一个":"和其前后组成对象的一个属性:”属性:属性值“
比如上面的”Uid:用户编号“就是他外层{}的一个属性。
属性的值还可以是对象或数组,比如上面的:Content:[..........] 或者Content:{..........}
如果你用 .NET 3.5 及以上的版本可以用这两个方法。.NET 3.5 以后微软已经加入了解析 Json 的功能。在命名空间 System.Runtime.Serialization.Json 下。
/// <summary> /// 将对象转换成 JSON 文本。 /// </summary> /// <param name="obj">要转换的对象。</param> /// <returns></returns> public string ConvertObjectToJson(object obj) { string jsonText = string.Empty; if (obj != null) { DataContractJsonSerializer dataContractJsonSerializer = new DataContractJsonSerializer(obj.GetType()); MemoryStream memoryStream = new MemoryStream(); dataContractJsonSerializer.WriteObject(memoryStream, obj); jsonText = Encoding.UTF8.GetString(memoryStream.ToArray()); memoryStream.Close(); } return jsonText; } /// <summary> /// 将 JSON 文本转换成对象。 /// </summary> /// <typeparam name="T">对象的类型。</typeparam> /// <param name="jsonText">JSON 文本。</param> /// <returns></returns> public T ConvertJsonToObject<T>(string jsonText) { T obj = default(T); if (!string.IsNullOrEmpty(jsonText)) { DataContractJsonSerializer dataContractJsonSerializer = new DataContractJsonSerializer(typeof(T)); MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(jsonText)); obj = (T)dataContractJsonSerializer.ReadObject(memoryStream); } return obj; }
using System.Runtime.Serialization.Json; 引用这出错。
@小..布丁: 项目必须是 .NET 3.5 或者 .NET 3.5 以上的版本。你看一下你项目是不是 3.5 的。