首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在c#中制作带格式的json文件

如何在c#中制作带格式的json文件
EN

Stack Overflow用户
提问于 2019-06-05 08:46:12
回答 1查看 50关注 0票数 0

我想用C#制作一个格式化的json文件。

我想这样做:

代码语言:javascript
复制
{
    "LiftPositioner" : [
        "LiftMax" : 5,
        "LiftMin" : 0
    ], 

    "Temperature" : [
        "CH0_Temp" : 25,
        "CH1_Temp" : 25
    ]
}

但结果是

代码语言:javascript
复制
{
 "LiftMax": 5,
 "LiftMin": 0,
 "CH0_Temp": 25,
 "CH1_Temp": 25
}

这是我的代码:

代码语言:javascript
复制
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);

我必须在代码中更改什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-05 08:56:19

如果您无论如何都要运行JsonConvert.SerializeObject,那么使用您的值创建一个匿名类型可能会更容易一些。下面的代码会让你得到你想要的结果:

代码语言:javascript
复制
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);

它输出以下内容:

代码语言:javascript
复制
{
  "LiftPositioner": [
    {
      "LiftMax": 5,
      "LiftMin": 0
    }
  ],
  "Temperature": [
    {
      "CH0_Temp": 25,
      "CH1_Temp": 25
    }
  ]
}

如果您不需要LiftPositionerTemperature属性的列表,可以将其缩减为:

代码语言:javascript
复制
var item = new
{
    LiftPositioner = 
    new 
    {
        LiftMax = 5,
        LiftMin = 0
    },
    Temperature = 
    new
    {
        CH0_Temp = 25,
        CH1_Temp = 25
    }
};

这将会产生

代码语言:javascript
复制
{
  "LiftPositioner": {
    "LiftMax": 5,
    "LiftMin": 0
  },
  "Temperature": {
    "CH0_Temp": 25,
    "CH1_Temp": 25
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56452956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档