我想用C#制作一个格式化的json文件。
我想这样做:
{
"LiftPositioner" : [
"LiftMax" : 5,
"LiftMin" : 0
],
"Temperature" : [
"CH0_Temp" : 25,
"CH1_Temp" : 25
]
}
但结果是
{
"LiftMax": 5,
"LiftMin": 0,
"CH0_Temp": 25,
"CH1_Temp": 25
}
这是我的代码:
var json = new JObject();
json.Add("LiftMax", Convert.ToInt32(radTextBox_LiftMax.Text));
json.Add("LiftMin", Convert.ToInt32(radTextBox_LiftMin.Text));
json.Add("CH0_Temp", Convert.ToInt32(radTextBox_CH0.Text));
json.Add("CH1_Temp", Convert.ToInt32(radTextBox_CH1.Text));
string strJson = JsonConvert.SerializeObject(json, Formatting.Indented);
File.WriteAllText(@"ValueSetting.json", strJson);
我必须在代码中更改什么?
发布于 2019-06-05 08:56:19
如果您无论如何都要运行JsonConvert.SerializeObject
,那么使用您的值创建一个匿名类型可能会更容易一些。下面的代码会让你得到你想要的结果:
var item = new
{
LiftPositioner = new[]
{
new
{
LiftMax = 5,
LiftMin = 0
}
},
Temperature = new[]
{
new
{
CH0_Temp = 25,
CH1_Temp = 25
}
}
};
string strJson = JsonConvert.SerializeObject(item, Newtonsoft.Json.Formatting.Indented);
Console.WriteLine(strJson);
它输出以下内容:
{
"LiftPositioner": [
{
"LiftMax": 5,
"LiftMin": 0
}
],
"Temperature": [
{
"CH0_Temp": 25,
"CH1_Temp": 25
}
]
}
如果您不需要LiftPositioner
和Temperature
属性的列表,可以将其缩减为:
var item = new
{
LiftPositioner =
new
{
LiftMax = 5,
LiftMin = 0
},
Temperature =
new
{
CH0_Temp = 25,
CH1_Temp = 25
}
};
这将会产生
{
"LiftPositioner": {
"LiftMax": 5,
"LiftMin": 0
},
"Temperature": {
"CH0_Temp": 25,
"CH1_Temp": 25
}
}
https://stackoverflow.com/questions/56452956
复制相似问题