public class Users { //{"Username":"58486","Nickname":"\u5954\u65CF","Password":"YwBoAGUAGMwAzADMALgA=","Key":"351518486_565510","areaId":"30566","serverId":"32510"} public string Username; public string Nickname; public string Password; public string Key; public string areaId; public string severId; }
http://hi.baidu.com/jommyfang/item/45fedd0bf2c07a27a0312d39
http://bbs.csdn.net/topics/350011261
public class Users
{
string Username;
string Stu_number;
……
}下载 Newtonsoft的dll,解析Json字符串
引入
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;string UsersInfo="你要解析的字符串 (上面那一大串)";JObject jsonObj = JObject.Parse(UsersInfo);
JArray UsersJa = JArray.Parse(jsonObj["Users"].ToString());
for (int i = 0; i < UsersJa.Users; i++)
{
Users user=new Users//这个就是你定义的类user.Username=UserdJa[i]["Username"].tostring();
user. Stu_number=UserdJa[i][" Stu_number"].tostring();
……
……
//UserList.Add(user)
}
完成。当让你的Users信息这么多你可以定义一个List<Users> UserList存放Users信息
应该是for (int i = 0; i < UsersJa.Count; i++)
大概理解了一下你的思路,可以加QQ详细指导一下吗?我的QQ:1268468
{
string Userinfo=textBox1.Text;
JObject jsonObj = JObject.Parse(Userinfo);
JArray UserJa = JArray.Parse(jsonObj["Users"].ToString());
for (int i = 0; i < UserJa.Count; i++)
{
Users user = new Users();
user.Username = UserJa[i]["Username"].ToString();
user.Nickname = UserJa[i]["Nickname"].ToString();
user.Password = UserJa[i]["Password"].ToString();
user.Key = UserJa[i]["Key"].ToString();
user.areaId = UserJa[i]["areaId"].ToString();
user.severId = UserJa[i]["severId"].ToString();
} }
public class Users
{
//{"Username":"58486","Nickname":"\u5954\u65CF","Password":"YwBoAGUAGMwAzADMALgA=","Key":"351518486_565510","areaId":"30566","serverId":"32510"}
public string Username;
public string Nickname;
public string Password;
public string Key;
public string areaId;
public string severId;
}
大概理解了一下你的思路,可以加QQ详细指导一下吗?我的QQ:1268468汗,你不是已经取得了Username;Nickname的值了么,直接赋值给textBox2.Text不就行了吗。
当然你的user信息这么多你可以先将user存放在一个List泛型里。
List<Users> UserList=new List<Users>();
在for循环里 最后一句UserList.Add(user);
然后想要获得哪个值就是哪个值,比如获取第一个用户名:
textBox2.Text=UserList[0].Username……
还有就是你本来不是想在ListView显示信息吗,也可以直接将user add到listView里显示
//using Newtonsoft.Json.Linq; private void button1_Click(object sender, EventArgs e)
{
string sPath = ".\\user.txt";
string sJson = File.ReadAllText(sPath);
#if DEBUG
Console.WriteLine(sJson);
#endif
ArrayList ObjList = new ArrayList(); //将字符串转换成Json对象
JObject jo = JObject.Parse(sJson); //将Users这个字段的值,转换成Json数组
JArray ja = jo["Users"] as JArray; //将Json数组,转换成CUser的对象
for (int i = 0; i < ja.Count; i++)
{
object user = ja[i].ToObject(typeof(CUser));
ObjList.Add(user);
} RefreshListView(ObjList);
} //刷新ListView数据集
private void RefreshListView(ArrayList arrList)
{
lstUsers.Items.Clear();
for (int i = 0; i < arrList.Count; i++)
{
string sText = (arrList[i] as CUser).userName;
lstUsers.Items.Add(sText);
}
} //一条数据的结构
class CUser
{
public string userName { get; set; }
public string Stu_number { get; set; }
public string ssd { get; set; }
public string Key { get; set; }
public string areaId { get; set; }
public string number { get; set; }
}
object user = ja[i].ToObject(typeof(CUser));
找不到方法:“Boolean System.Runtime.Serialization.DataContractAttribute.get_IsReference()”。能不能给个能调试的demo
大概理解了一下你的思路,可以加QQ详细指导一下吗?我的QQ:1268468汗,你不是已经取得了Username;Nickname的值了么,直接赋值给textBox2.Text不就行了吗。
当然你的user信息这么多你可以先将user存放在一个List泛型里。
List<Users> UserList=new List<Users>();
在for循环里 最后一句UserList.Add(user);
然后想要获得哪个值就是哪个值,比如获取第一个用户名:
textBox2.Text=UserList[0].Username……
还有就是你本来不是想在ListView显示信息吗,也可以直接将user add到listView里显示
能不能给个能调试的demo,调试出来老是这里有错那里不对
六一儿童节我还在写代码实在是太敬业了,哈哈。
话说上海一到周末就下雨,老天爷比我还敬业,害的一天宅在家中……大概理解了一下你的思路,可以加QQ详细指导一下吗?我的QQ:1268468汗,你不是已经取得了Username;Nickname的值了么,直接赋值给textBox2.Text不就行了吗。
当然你的user信息这么多你可以先将user存放在一个List泛型里。
List<Users> UserList=new List<Users>();
在for循环里 最后一句UserList.Add(user);
然后想要获得哪个值就是哪个值,比如获取第一个用户名:
textBox2.Text=UserList[0].Username……
还有就是你本来不是想在ListView显示信息吗,也可以直接将user add到listView里显示
能不能给个能调试的demo,调试出来老是这里有错那里不对
object user = ja[i].ToObject(typeof(CUser));
找不到方法:“Boolean System.Runtime.Serialization.DataContractAttribute.get_IsReference()”。能不能给个能调试的demo
我已经将DEMO,放在CSDN的资源列表里面了,可以去此地址下载:
http://download.csdn.net/detail/unearth/7432591
object user = ja[i].ToObject(typeof(CUser));
找不到方法:“Boolean System.Runtime.Serialization.DataContractAttribute.get_IsReference()”。能不能给个能调试的demo
我已经将DEMO,放在CSDN的资源列表里面了,可以去此地址下载:
http://download.csdn.net/detail/unearth/7432591谢谢,我用的是vs2010,虽然没调试出来,还是谢谢你object user = ja[i].ToObject(typeof(CUser));错误 1 无法从用法中推导出方法“Newtonsoft.Json.Linq.JToken.ToObject<T>(Newtonsoft.Json.JsonSerializer)”的类型实参。请尝试显式指定类型实参。 I:\Visual studio 2008\demo\CSDN_TEST_JSON\CSDN_TEST_JSON\Form1.cs 40 31 CSDN_TEST_JSON
大概理解了一下你的思路,可以加QQ详细指导一下吗?我的QQ:1268468汗,你不是已经取得了Username;Nickname的值了么,直接赋值给textBox2.Text不就行了吗。
当然你的user信息这么多你可以先将user存放在一个List泛型里。
List<Users> UserList=new List<Users>();
在for循环里 最后一句UserList.Add(user);
然后想要获得哪个值就是哪个值,比如获取第一个用户名:
textBox2.Text=UserList[0].Username……
还有就是你本来不是想在ListView显示信息吗,也可以直接将user add到listView里显示
能不能给个能调试的demo,调试出来老是这里有错那里不对 谢谢咯