zoukankan      html  css  js  c++  java
  • C#下JSON字符串的反序列化

    C#下JSON字符串的反序列化,一般都是用newtonsoft.json,比较方便。.net当然也有提供相应功能,但觉得比较复杂。

    所谓反序列化,就是将一个包含JSON内容的字符串,转换回指定对象(不一定是转换回JSON对象)。

    方法是:

    using Newtonsoft.Json;

    。。。

    JsonConvert.DeserializeObject<。。。>(strJson)

    示例1:

    public class ViewTag
    {
        public int ViewId { get; set; }
        public string Name { get; set; }
        public bool IsValid { get; set; }
        public int Seq { get; set; }
        public byte ChangeType { get; set; }
    }
    
    string strJson = "[{'ViewId':14,'Name':'view 1','IsValid':true,'Seq':'1','ChangeType':0},{'ViewId':15,'Name':'view 2','IsValid':true,'Seq':'2','ChangeType':0}]";
    
    List<ViewTag> list = JsonConvert.DeserializeObject<List<ViewTag>>(strJson);

    上述例子中,json字符串内,每个json元素的数据结构都一样。但假如不一样,怎么办?

    示例2:

    string strJson = @"[{
    	'id':1,
    	'text':'All Object',
    	'iconCls':'', 
    	'children':[{
    		'id':11,
    		'text':'Key attributes',
    		'children':[{
    			'id':111,
    			'text':'Item1'
    		},{
    			'id':112,
    			'text':'Item2'
    		},{
    			'id':113,
    			'text':'Item3'
    		}]
    	},{
    		'id':12,
    		'text':'Service table 1',
    		'state':'closed',
    		'children':[{
    			'id':121,
    			'text':'Service 1'
    		},{
    			'id':122,
    			'text':'Service 2'
    		},{
    			'id':123,
    			'text':'Service 3'
    		}]
    	},{
    		'id':13,
    		'text':'Service table 2',
    		'state':'closed',
    		'children':[{
    			'id':131,
    			'text':'Service 1'
    		},{
    			'id':132,
    			'text':'Service 2'
    		},{
    			'id':133,
    			'text':'Service 3'
    		}]
    	},{
    		'id':14,
    		'text':'Service table 3'
    	}]
    }]";
                return JsonConvert.DeserializeObject<List<object>>(strJson);

    不管三七二十一,将泛型对象定为 object 即可。


  • 相关阅读:
    软件工程(2018)第一次作业
    SQA计划
    再冲刺
    第三次冲刺
    第二次冲刺
    小组第一次冲刺
    团队合作初体验
    关于git的认识与想法
    我的第一篇博客
    SQA计划和系统测试规程
  • 原文地址:https://www.cnblogs.com/leftfist/p/4257816.html
Copyright © 2011-2022 走看看