RBT*_*RBT 3 .net c# json json.net
我有这个非常简单的方法如下:
//my current file
using Newtonsoft.Json;
string key1 = "FirstKey";
string key2 = "SecondKey";
string key3 = "ThirdKey";
private string CreateJson(string val1, string val2, string val3,string val4, string val5, string val6)
{
//process the six arguments and three key-related member variables to create a JSON array
//don't want to use JsonConvert.SerializeObject the way I'm doing below as it requires creating a class
var configs = new List<CustomClass>
{ new CustomClass{ FirstKey = val1,SecondKey= val2,ThirdKey= val3}
, new CustomClass{ FirstKey= val4,SecondKey= val5,ThirdKey = val6}
};
var jsonData = JsonConvert.SerializeObject(configs);
return jsonData;
}
//A class in another file
public class CustomClass
{
public string FirstKey { get; set; }
public string SecondKey{ get; set; }
public string ThirdKey{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用JSON.Net创建JSON数组.预期产量如下:
[{"FirstKey":val1,"SecondKey":val2,"ThirdKey":val3}
, {"FirstKey":val4,"SecondKey":val5,"ThirdKey":val6}]
Run Code Online (Sandbox Code Playgroud)
这里val1的val6值应该在运行时被参数值替换.
最初,由于只有三种类型的字符串键值对,所以我认为只需使用字符串文字并以JSON格式依次追加即可创建JSON字符串非常简单.但很快我偶然发现了可以使JSON字符串变形的转义字符世界,例如\r.
我过去一直在使用JSON.Net库来简单地使用JSONConvert类来序列化和反序列化对象,我从不关心并且完全没有意识到JSON.Net库对转义符号的这种处理在幕后为我们保持JSON字符串有效.
无论如何,回到我的问题.我能够通过创建具有三个属性的自定义类来解决我的问题FirstKey,SecondKey和ThirdKey.然后,创建的类的一个对象,然后在参数分配值val1和val2对然后,然后使用JsonConvert.SerializeObjectAPI.
我想要一种使用JSON.Net NuGet包创建JSON字符串的简单方法,而不涉及自定义类.CustomClass完全创建一个类似乎是一个开销.StringBuilder.Append如果它在我正在使用的JSON库中可用,我正在寻找类似API的东西.我不确定我是否缺少JSON.Net中的任何API.
正如评论中所提到的,您可以使用匿名对象轻松创建它.
private string CreateJson(string val1, string val2, string val3, string val4, string val5, string val6) {
var configs = new[]
{
new { FirstKey = val1, SecondKey = val2, ThirdKey = val3},
new { FirstKey = val4, SecondKey = val5, ThirdKey = val6}
};
var jsonData = JsonConvert.SerializeObject(configs);
return jsonData;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6558 次 |
| 最近记录: |