c#中如何改变json格式数据的某个值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中如何改变json格式数据的某个值相关的知识,希望对你有一定的参考价值。
我是想把dgv中第五列的值写进jo中,JObject jo =nul;在上面对jo进行了定义
我之前做过网络和桌面应用的数据对接,你看看/*
1、对象集合
*/
[DataContract]
public class Items
[DataMember]
public List<ddd> dddget;set;
public Items()
ddd = new List<ddd>();
//把字符串转换为对象
public static Items FormJson(string json)
try
System.Runtime.Serialization.Json.DataContractJsonSerializer a = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(Items));
using (MemoryStream stream = new MemoryStream(Encoding.Unicode.GetBytes(json)))
return (Items)a.ReadObject(stream);
catch (Exception)
return null;
/*
简单的对象
*/
[DataContract]
public class ddd
[DataMember]
public int cidget;set;
[DataMember]
public int pid get; set;
[DataMember]
public int oid get; set;
[DataMember]
public string view_type get; set;
[DataMember]
public string status get; set;
[DataMember]
public string name get; set;
[DataMember]
public string eng_name get; set;
[DataMember]
public string ctpl get; set;
[DataMember]
public string url get; set;
/*
2、从HTTP请求中得到数据
*/
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.bursonchurch.net//index.php?Interface-index-keyt-123-act-catelist.html");
request.Timeout = 5000;
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Console.WriteLine("内容类型:"+response.ContentType);
Console.WriteLine("内容长度:"+response.ContentLength);
Console.WriteLine("服务器名:"+response.Server);
Console.WriteLine("资源的URI:"+response.ResponseUri);
Console.WriteLine("HTTP协议版本:" + response.ProtocolVersion);
Console.WriteLine("相应状态:"+response.StatusCode);
Console.WriteLine("相应方法:"+response.Method);
//头信息
for (int i = 0; i < response.Headers.Count; ++i)
Console.WriteLine("\\nHeader Name:0,----------Value:1", response.Headers.Keys[i], response.Headers[i]);
StreamReader sr = new StreamReader(response.GetResponseStream());
string jsonstr = sr.ReadToEnd();
//例子 :假设得到的json数据 下面序列化为对象
string test = "\\"ddd\\":[\\"cid\\":\\"1\\",\\"pid\\":\\"0\\",\\"oid\\":\\"0\\",\\"view_type\\":\\"0\\",\\"status\\":\\"1\\",\\"name\\":\\"西科推荐\\",\\"eng_name\\":\\"\\",\\"ctpl\\":\\"\\",\\"ctitle\\":\\"\\",\\"ckeywords\\":\\"\\",\\"cdescription\\":\\"\\",\\"url\\":\\"http:\\\\/\\\\/www.bursonchurch.net\\\\/index.php?Cate-index-cid-1.html\\",\\"cid\\":\\"2\\",\\"pid\\":\\"0\\",\\"oid\\":\\"2\\",\\"view_type\\":\\"0\\",\\"status\\":\\"1\\",\\"name\\":\\"校园活动\\",\\"eng_name\\":\\"\\",\\"ctpl\\":\\"\\",\\"ctitle\\":\\"\\",\\"ckeywords\\":\\"\\",\\"cdescription\\":\\"\\",\\"url\\":\\"http:\\\\/\\\\/www.bursonchurch.net\\\\/index.php?Cate-index-cid-2.html\\",\\"cid\\":\\"3\\",\\"pid\\":\\"0\\",\\"oid\\":\\"2\\",\\"view_type\\":\\"0\\",\\"status\\":\\"1\\",\\"name\\":\\"帅哥\\",\\"eng_name\\":\\"\\",\\"ctpl\\":\\"\\",\\"ctitle\\":\\"\\",\\"ckeywords\\":\\"动物世界keword\\",\\"cdescription\\":\\"动物世界s\\",\\"url\\":\\"http:\\\\/\\\\/www.bursonchurch.net\\\\/index.php?Cate-index-cid-3.html\\",\\"cid\\":\\"4\\",\\"pid\\":\\"0\\",\\"oid\\":\\"4\\",\\"view_type\\":\\"1\\",\\"status\\":\\"1\\",\\"name\\":\\"静物\\",\\"eng_name\\":\\"\\",\\"ctpl\\":\\"\\",\\"ctitle\\":\\"\\",\\"ckeywords\\":\\"\\",\\"cdescription\\":\\"\\",\\"url\\":\\"http:\\\\/\\\\/www.bursonchurch.net\\\\/index.php?Cate-index-cid-4.html\\",\\"cid\\":\\"5\\",\\"pid\\":\\"0\\",\\"oid\\":\\"5\\",\\"view_type\\":\\"1\\",\\"status\\":\\"1\\",\\"name\\":\\"美女\\",\\"eng_name\\":\\"\\",\\"ctpl\\":\\"\\",\\"ctitle\\":\\"\\",\\"ckeywords\\":\\"\\",\\"cdescription\\":\\"\\",\\"url\\":\\"http:\\\\/\\\\/www.bursonchurch.net\\\\/index.php?Cate-index-cid-5.html\\"]";
//第一种转
javascriptSerializer j = new JavaScriptSerializer();
Items ii = new Items();
ii = j.Deserialize<Items>(jsonstr);
//第二种也行
Items it = Items.FormJson(jsonstr);
response.Close();
Console.ReadKey(); 参考技术A 如果你知道返回后的json是什么格式,就好取了啊。比如哦ss=name:"name",pass:"pass"
只需要ss["name"]即可取到name的值了呗。
C#获取Json字符串中的某个值
问题描述:
json数据格式{"resCode":0,"resMag":"aaa","data":[{"parkName": "B1停车场","freeSpaceNum":100}]}。
第一方法:使用 JavaScriptSerializer
JavaScriptSerializer Jss = new JavaScriptSerializer(); Dictionary<string, object> DicText = (Dictionary<string, object>)Jss.DeserializeObject(ReText); if (!DicText.ContainsKey("openid")) return ""; return DicText["openid"].ToString();
第二种方法:使用newtonsoft.dll类库
1.先下载一个newtonsoft.dll类库:附件已经上传。
2.在项目里添加这个类库的引用
3.获取代码
JObject obj = Newtonsoft.Json.Linq.JObject.Parse(ReText); string freSpaceNum = obj["data"][0]["freSpaceNum"].ToString(); string resMag = ob["resMag"].ToString();
以上是关于c#中如何改变json格式数据的某个值的主要内容,如果未能解决你的问题,请参考以下文章