c# - Convert different object into single JSON string
问题描述
I want to create json like this:
{
"classA":{
"A":"",
"B":"",
"C":""
},
"classB":{
"E":"",
"A":"",
"G":""
},
"classC":{
"A":"",
"B":""
},
"classD":{
"A":""
}
}
How to convert this type of json? I am using Newtonsoft.Json
, however I currently convert it with a hard coded method.
解决方案
最简单的方法是为所有对象创建一个包装器类并反/序列化包装器:
使用json2csharp之类的工具生成类结构:
public class ClassA
{
public string A { get; set; }
public string B { get; set; }
public string C { get; set; }
}
public class ClassB
{
public string E { get; set; }
public string A { get; set; }
public string G { get; set; }
}
public class ClassC
{
public string A { get; set; }
public string B { get; set; }
}
public class ClassD
{
public string A { get; set; }
}
public class Wrapper
{
public ClassA classA { get; set; }
public ClassB classB { get; set; }
public ClassC classC { get; set; }
public ClassD classD { get; set; }
}
在此之后,您可以像这样反序列化它:
var obj = JsonConvert.DeserializeObject<Wrapper>(json);
要将现有对象序列化为 json 字符串,您可以这样进行:
var obj = new Wrapper();
var json = JsonConvert.SerializeObject(obj);
推荐阅读
- javascript - 在 ClojureScript 中实现静态属性
- git - Git - 创建类似子模块但反转的东西
- python - 在 python 中执行 NAO Choregraphe 时间线
- android - Android - 使用 Agora.io 进行屏幕共享
- python-3.x - 根据条件更新熊猫中的列值
- laravel - 拉拉维尔。如何在客户端捕获私有通道身份验证错误?
- javascript - 导入 React 时 Jest 测试套件无法运行
- javascript - 单击 React 时如何添加类
- opengl - 海拔等高线opengl
- eslint - 什么 eslint 规则通过爆炸对象来防止变量定义?