C#拼JSON和解JSON_简易用法
1、安装NuGet程序包
2、引用命名空间
3、拼一个简单的JSON
4、解析一个JSON
安装NuGet程序包
引用命名空间
拼一个简单的JSON(点击这个按钮控制台即可输出)
privatevoidbutton1_Click(object sender,EventArgs e)//按钮事件函数{string UUID="3151315";var a=new{
uuid= UUID};string json= JsonConvert.SerializeObject(a, Formatting.Indented);
Console.WriteLine(json);}privatestringreduce_json(string str)//去除json中的回车、空格、换行符、和制表符{if(str!="")return str.Replace("\n","").Replace(" ","").Replace("\r","").Replace("\t","");elsereturn str;}
解析一个嵌套的JSON
{"name":"Tom","age":25,"marry":true,"children":[{"name":"May","age":2},{"name":"Kendy","age":3},{"name":"Mark","age":1}]}//需要接续此json
需要新添加一个命名空间
privatevoidbutton2_Click(object sender,EventArgs e)//按键事件函数{string result="{\"name\":\"Tom\",\"age\":25,\"marry\":true,\"children\":[{\"name\":\"May\",\"age\":2},{\"name\":\"Kendy\",\"age\":3},{\"name\":\"Mark\",\"age\":1}]}";
result=escape_json(result);//转义jsonif(IsValidJson(result)!=false)//判断返回数据是否是json字符串{dynamic obj= JsonConvert.DeserializeObject(result);//将json字符串转成一个对象if(obj.children.Count>0){var code= obj.children;//解析JSON,直接找到你所需要的数据foreach(var itemin code){if(string.Equals("Kendy", item.name.ToString(), StringComparison.OrdinalIgnoreCase)){
Console.WriteLine(item.age.ToString());}}}elsereturn;}else{
MessageBox.Show("返回非JSON字符串","错误提示");return;}}privatestringescape_json(string str)//去转义{string result_str= str.Replace("\"{","{");
result_str= result_str.Replace("}\"","}");
result_str= result_str.Replace("\"[{","[{");
result_str= result_str.Replace("}]\"","}]");
result_str= result_str.Replace("\\","");return result_str;}privatestaticboolIsValidJson(string strInput)//用来被调用的检验字符串是否为json,也可返回错误点{
strInput= strInput.Trim();if((strInput.StartsWith("{")&& strInput.EndsWith("}"))||//For object(strInput.StartsWith("[")&& strInput.EndsWith("]")))//For array{try{var obj= JToken.Parse(strInput);returntrue;}catch(JsonReaderException jex){//Exception in parsing json
Console.WriteLine(jex.Message);returnfalse;}catch(Exception ex)//some other exception{
Console.WriteLine(ex.ToString());returnfalse;}}else{returnfalse;}}
按键发生后输出数字3