比如客户端传了一个字符串给我
{
"data":
{
"mobile":
{
"platform":"2.2",
"model":"generic|sdk",
"versioncode":"20111125",
"versionname":"1.2.0",
"web_domain":"http://www.baidu.com",
"ip":"",
"dns1":"",
"dns2":"",
"channel_id":"0"
}
}
}在不创建类的情况下,如何获取到每个值啊
{
"data":
{
"mobile":
{
"platform":"2.2",
"model":"generic|sdk",
"versioncode":"20111125",
"versionname":"1.2.0",
"web_domain":"http://www.baidu.com",
"ip":"",
"dns1":"",
"dns2":"",
"channel_id":"0"
}
}
}在不创建类的情况下,如何获取到每个值啊
string str = @"{
""data"":
{
""mobile"":
{
""platform"":""2.2"",
""model"":""generic|sdk"",
""versioncode"":""20111125"",
""versionname"":""1.2.0"",
""web_domain"":""http://www.baidu.com"",
""ip"":"""",
""dns1"":"""",
""dns2"":"""",
""channel_id"":""0""
}
}
}";
JavaScriptObject json = (JavaScriptObject)JavaScriptConvert.DeserializeObject(str);
JavaScriptObject data = (JavaScriptObject)json["data"];
JavaScriptObject mobile = (JavaScriptObject)data["mobile"];
Console.WriteLine("{0} {1} {2}", mobile["platform"], mobile["model"], mobile["versioncode"]);
JavaScriptObject 是哪里来的啊
我在6楼已经告诉你了呀,在 ttp://json.codeplex.com/
[email protected] JavaScriptObject json = (JavaScriptObject)Newtonsoft.Json.JavaScriptConvert.DeserializeObject(str);
JavaScriptObject data = (JavaScriptObject)json["data"];
JavaScriptObject mobile = (JavaScriptObject)data["mobile"];错误 1 找不到类型或命名空间名称“JavaScriptObject”(是否缺少 using 指令或程序集引用?)
去 http://json.codeplex.com/ 下载Json.NET,
下载的文件里面包含了教程和示范程序。
你说的是PHP吧。我见过PHP程序员把JSON按照key-value的形式一项一项地分析。.Net没有PHP那么老土的。在.Net里面JSON的格式可以通过序列化与反序列化来创建、解析。
我一般用.net自带的序列化和反序列化进行转换。
using System.Web.Script.Serialization; /// <summary>
/// 序列化对象转JSON字串
/// </summary>
/// <param name="m_Model"></param>
/// <returns></returns>
public static string SerializeJson(object m_Model)
{
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Serialize(m_Model);
}
/// <summary>
/// 反序列化JSON字串转T对象
/// 参考字串:{RoleName:'角色2',ShopName:'店铺2'}
/// 参考IList字串:[{\"RoleName\":\"角色1\",\"ShopName\":\"店铺1\"},{\"RoleName\":\"角色2\",\"ShopName\":\"店铺2\"}]
/// </summary>
/// <param name="p_JsonStr"></param>
/// <returns></returns>
public static T DeserializeJson<T>(string p_JsonStr)
{
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Deserialize<T>(p_JsonStr);
}
.net 3.5自带的序列化需要我根据结构自己先定义一个类,然后才能序列化
我要的是可以不用定义类就能直接拿数据的办法啊
Newtonsoft.Json,它有它自己的方法。你下载下来的文件里面应该包含教程和例子,自己看看是哪个方法吧。
JSON.Net也支持按key-value的形式来解析JSON字符串。同样建议你看它自带的教程和例子。
我上传到我的资源里了,那个.dll也在里面
http://download.csdn.net/detail/huangwenquan123/4106165
里面有 JObject 和 JArray的定义,用法和java里面一样。object obj = JsonConvert.DeserializeObject(onlinedata);
JObject js = obj as JObject;
JArray ja = js["data"] as JArray;
List<string> uidlist = new List<string>();
for (int i = 0; i < ja.Count; i++)
{
JObject jo = ja[i] as JObject;
uidlist.Add(jo["uid"].ToString());
}