json 相关知识

一:json标准格式:

标准JSON的合法符号:{(左大括号)  }(右大括号)  "(双引号)  :(冒号)  ,(逗号)  [(左中括号)  ](右中括号)

JSON字符串:特殊字符可在字符前面加 \ 或使用 \u 加 4位16进制数来处理

  1. {"name":"jobs"}  

JSON布尔:必须小写的true和false

  1. {"bool":true}  

JSON空:必须小写的null

  1. {"object":null}  

JSON数值:不能使用8/16进制

  1. {"num":60}  
  2. {"num":-60}  
  3. {"num":6.6666}  
  4. {"num":1e+6}<!-- 1乘10的6次方,e不区分大小写 -->  
  5. {"num":1e-6}<!-- 1乘10的负6次方,e不区分大小写 -->  

JSON对象

  1. {  
  2.     "starcraft": {  
  3.         "INC": "Blizzard",  
  4.         "price": 60  
  5.     }  
  6. }  

JSON数组

  1. {  
  2.     "person": [  
  3.         "jobs",  
  4.         60  
  5.     ]  
  6. }  

JSON对象数组

  1. {  
  2.     "array": [  
  3.         {  
  4.             "name": "jobs"  
  5.         },  
  6.         {  
  7.             "name": "bill",  
  8.             "age": 60  
  9.         },  
  10.         {  
  11.             "product": "war3",  
  12.             "type": "game",  
  13.             "popular": true,  
  14.             "price": 60  
  15.         }  
  16.     ]  
  17. }  

转载自http://blog.csdn.net/assholeu/article/details/43037373

二、C#将json转为匿名对象或则匿名对象数组 

(非常有用)

解决方案 使用 Newtonsoft.Json:
如json数组串:
var ReqDataJson="[
{
"SysNo": "170",
"ItemSysNos": [
"146"
]
},
{
"SysNo": "169",
"ItemSysNos": [
"145"
]
},
{
"SysNo": "168",
"ItemSysNos": [
"144"
]
},
{
"SysNo": "167",
"ItemSysNos": [
"143"
]
}
]";

创建匿名对象
var reqData = new[] { new { SysNo=0 , ItemSysNos=new[] { 0 } } };
反序列化:
reqData =JsonConvert.DeserializeAnonymousType(ReqDataJson, reqData);

posted on 2017-12-18 08:00  七七2020  阅读(117)  评论(0编辑  收藏  举报

导航