json data转匿名对象C#
2024-09-04 23:16:30
using Newtonsoft.Json.Linq;
代码如下:
static void Main(string[] args)
{
Console.WriteLine("Test 4.8");
var o = new
{
a = ,
b = "Hello, World!",
c = new[] { , , },
d = new Dictionary<string, int> { { "x", }, { "y", } }
}; var json = JsonConvert.SerializeObject(o);
/* 1 */
Console.WriteLine("-----------1---------------");
var anonymous = new { a = , b = String.Empty, c = new int[], d = new Dictionary<string, int>() };
var o2 = JsonConvert.DeserializeAnonymousType(json, anonymous);
Console.WriteLine(o2.b);
Console.WriteLine(o2.c[]); /* 2 */
Console.WriteLine("-----------2---------------");
var o3 = JsonConvert.DeserializeAnonymousType(json, new { c = new int[], d = new Dictionary<string, int>() });
Console.WriteLine(o3.d["y"]); /* 3 */
Console.WriteLine("-----------3---------------");
var o4 = JsonConvert.DeserializeObject(json) as JObject;
Console.WriteLine((int)o4["a"]);
Console.WriteLine((string)o4["b"]);
Console.WriteLine(o4["c"].Values().Count());
Console.WriteLine((int)o4["d"]["y"]); /* 4 */
Console.WriteLine("-----------3---------------");
string requestParams = "{\"InquiryOrderNo\":\"1\",\"InquirySolutionNo\":\"2\",\"PlatPlanNo\":\"3\",\"State\":\"4\"}";
var entity = JsonConvert.DeserializeObject(requestParams) as JObject;
string strInquiryOrderNo = entity != null ? (string)entity["InquiryOrderNo"] : string.Empty;
string strInquirySolutionNo = entity != null ? (string)entity["InquirySolutionNo"] : string.Empty;
string strPlatPlanNo = entity != null ? (string)entity["PlatPlanNo"] : string.Empty;
string strState = entity != null ? (string)entity["State"] : string.Empty;
Console.ReadKey();
}
解决创建接收json data的具体对象,缺点不是强类型,无法保证手误导致失败,保证方法是写单元测试。 对于高版本的net framewrok 有动态 类型dynamic可直接使用更方便,低版本的只能其他方法。
最新文章
- python中string模块
- MySQL连接线程kill利器之pt-kill
- ecshop 默认图处理
- Python核心编程--学习笔记--7--字典和集合
- UI:基础
- Part 56 Generics in C#
- EXT经验--查询EditorGridPanel的tbar的默认配置对象
- 韦东山yy公开课笔记(2)--各种杂的问题
- iOS隐藏tabBar的方法
- debian安装vld来查看Opcode,PHP调优。
- 管理维护Replica Sets
- LeetCode题目总结(二)
- Linux-硬件
- loadrunner使用https请求
- 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第5章编程练习9
- 2019.4.14 python基础30
- call apply bind的区别
- Python学习—数据库篇之SQL语句
- AE插入音乐
- vue+elementui按需引入