在.net 中使用json

说起json怎么说呢,听说已久但是就是未使用过;
前天合作伙伴给我个接口使用json传输数据的,这让我不得不现学现用。
首先我们应该对json脚本有个初步的认识。
下面脚本是我从网上直接找的,如果有和我一样的,可以在页面中运行下以便对json有个初步的认识。
 
<script type="text/javascript">
    function test() {
        //直接声明json数据结构 
        var myJSONObject = { "bindings": [
        { "ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*" },
        { "ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*" },
        { "ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*" }
    ]
        };
        //声明字符串,可对比一下json文本与我们正常文本的区别 
        var normalstring = '[{persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]}]';
        var jsontext = '[{"persons":[{"name":"jordan","sex":"m","age":"40"}, {"name":"bryant","sex":"m","age":"28"}, {"name":"McGrady","sex":"m","age":"27"} ]}]';
 
        //调用eval函数转换为json对象, 
        var myE = eval(normalstring);
        document.writeln(myE + '<br><br>');
        //将json对象转换为字符串 
        var text = JSON.stringify(myE);
        //对比转换后的json文本与声明的文本区别 
        document.writeln('转换后的json文本:' + text + '<br><br>声明的json格式文本' + jsontext + '<br><br>声明的普通格式文本' + normalstring + '<br><br>');
 
        //当安全比较重要的时候使用JSON解析就好一些。JSON解析只会识别JSON文本并且它更安全,下面调用json的parse函数对文本数据转换生成json数据结构 
        var myData = JSON.parse(jsontext);
 
        document.writeln("json 对象:" + myData + '<br><br>');
 
        //下面是对json对象的增删查改操作 
 
        //声明json对象 
 
        var jsonObj2 = { persons: [{ name: "jordan", sex: "m", age: "40" }, { name: "bryant", sex: "m", age: "28" }, { name: "McGrady", sex: "m", age: "27"}] };
 
        var persons = jsonObj2.persons;
        var str = "";
 
        var person = { name: "yaoMing", sex: "m", age: "26" };
        //以下为json对象的操作,去掉注释可以查看操作结果 
        //jsonObj2.persons.push(person);//数组最后加一条记录 
        //jsonObj2.persons.pop();//删除最后一项 
        //jsonObj2.persons.shift();//删除第一项 
        jsonObj2.persons.unshift(person); //数组最前面加一条记录 只要适合Javascript的方法都是可以用在JSON对象的数组中的!所以还有另外的方法splice( )进行crud操作! //删除 
        //jsonObj2.persons.splice(0,2);//开始位置,删除个数 
        //替换不删除 
        var self = { name: "tom", sex: "m", age: "24" };
        var brother = { name: "Mike", sex: "m", age: "29" };
        jsonObj2.persons.splice(1, 0, self, brother, self); //开始位置,删除个数,插入对象 
        //替换并删除 
        //jsonObj2.persons.splice(0,1,self,brother);//开始位置,删除个数,插入对象 
 
        for (var i = 0; i < persons.length; i++) { var cur_person = persons[i]; str += cur_person.name + "'sex is " + cur_person.sex + " and age is " + cur_person.age + "<br><br>"; }
        document.writeln(str);
        //转换为json文本 
        var myjsonobj = JSON.stringify(jsonObj2);
        document.writeln(myjsonobj);
    }
</script> 
 
 
查看完结果,希望你和我一样对json 有初步的认识。
 
 
下面就是我们在后台代码中获取json中值的问题了。
在FrameWork3.5及以上版本中,可以直接使用以下代码:
 
//先在项目中添加System.Web.Extensions引用
//using System.Web.Script.Serialization;
 
JavaScriptSerializer serializer = new JavaScriptSerializer();
Dictionary<string, object> json = (Dictionary<string, object>)serializer.DeserializeObject(
    "{name: 'zswang', forum: 'c#'}");
object value;
if (json.TryGetValue("name", out value))
    Console.WriteLine(value); // 输出:zswang
 
 
如果在低版本的FrameWork中使用,大家可以参考 http://www.yuuzle.com/csharp-json-serializer-tool-json-net.html
 
 
 
 
原文地址:https://www.cnblogs.com/baoconghui/p/2296294.html