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格式数据的某个值的主要内容,如果未能解决你的问题,请参考以下文章

JSON格式提取相同属性的某个值,如何做?

Python 怎么获取json 里的特定的某个值

C# - 将 json 格式的数据解析为嵌套的哈希表

C# 解析JSON格式数据

如何通过从 c# 对象中删除空值属性和零 (0) 值属性来优化 json

如何在 C# 中删除 Json 数据的标头名称