首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手动创建JSON

手动创建JSON
EN

Stack Overflow用户
提问于 2021-04-07 10:37:46
回答 4查看 1.5K关注 0票数 1

我有一个JSON,例如,它可以如下所示:

代码语言:javascript
复制
{
   "value":[
      {
         "Name":"Nik",
         "Age":"17",
         "Country":"Germany",
      },
      {
         "Name":"Tom",
         "Age":"20",
         "Country":"Russia",
      },
      {
         "Name":"Sila",
         "Age":"12",
         "Country":"Switzerland",

      }
   ]
}

属性的关键,如“名称”和“年龄”是动态的,可以改变。JSON也可以如下所示:

代码语言:javascript
复制
{
   "value":[
      {
         "Prename":"Nik",
         "Age":"17",
         "Country":"Germany"
         "Car":"Merc"
      },
      {
         "Prename":"Nik",
         "Age":"20",
         "Country":"Russia"
         "Car":"BMW"
      },
      {
         "Prename":"Nik",
         "Age":"12",
         "Country":"Switzerland",
         "Car":"Audi"
      }
   ]
}

重要的是结构,这就是我想用Newtonsoft.Json手动构建的。

这是我目前的尝试:

代码语言:javascript
复制
var jArray = new JArray();
jArray.Add("Name");
jArray.Add("Nikola");

jArray.Add("Age");
jArray.Add("17");

jArray.Add("Country");
jArray.Add("Germany");

JObject o = new JObject();
o["Value"] = jArray;

string json = o.ToString();

结果:

代码语言:javascript
复制
{
  "Value": [
    "Name",
    "Nikola",
    "Age",
    "17",
    "Country",
    "Germany"
  ]
}

我试着用newtonsoft网站的这个例子来解决这个问题,但是正如你所看到的,它真的很糟糕,解释道。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-04-07 10:51:57

您需要像这样将JObject添加到数组中。我想您必须添加任何您想要的条件属性(或其他嵌套对象)。

代码语言:javascript
复制
var jArray = new JArray();
var nik = new JObject();
nik["Name"] = "nik";
nik["Age"] = "17";
nik["Country"] ="Germany";

jArray.Add(nik);
JObject o = new JObject();
o["Value"] = jArray;

string json = o.ToString();

根据动态内容的确切性质,您可以使用类似于

代码语言:javascript
复制
    var jArray = new JArray
    {
        new JObject {["Name"] = "nik", ["Age"] = "17", ["Country"] = "Germany"},
        new JObject {["Name"] = "bob", ["Age"] = "32", ["Country"] = "New Zealand"}
    };
    var o = new JObject {["Value"] = jArray};
票数 5
EN

Stack Overflow用户

发布于 2021-04-07 10:45:23

如果要动态构造对象,可以使用字典:

代码语言:javascript
复制
var jsonObj = new Dictionary<string, List<Dictionary<string, string>>>
{
    {
        "Value", new List<Dictionary<string, string>>
        {
            new Dictionary<string, string>
            {
                {"Prename", "Nik"},
                {"Age", "17"},
                {"Country", "Germany"},
                {"Car", "Merc"}
            },
            new Dictionary<string, string>
            {
                {"Prename", "Nik"},
                {"Age", "20"},
                {"Country", "Russia"},
                {"Car", "BMW"}
            },
            new Dictionary<string, string>
            {
                {"Prename", "Nik"},
                {"Age", "12"},
                {"Country", "Switzerland"},
                {"Car", "Audi"}
            }
        }
    }
};
var json = JsonConvert.SerializeObject(jsonObj);
Console.WriteLine(json);
票数 1
EN

Stack Overflow用户

发布于 2021-04-07 10:50:19

您可以考虑从匿名对象创建它,如下所示:

代码语言:javascript
复制
JObject o = JObject.FromObject(new
{
    value = new [] {
        new {
            Name = "Nik",
            Age = "17",
            Country = "Germany"
        },

        new {
            Name = "Nik1",
            Age = "18",
            Country = "Austria"
        },
    }
});

string json = o.ToString();

它产生了以下结果:

代码语言:javascript
复制
{
  "value": [
    {
      "Name": "Nik",
      "Age": "17",
      "Country": "Germany"
    },
    {
      "Name": "Nik1",
      "Age": "18",
      "Country": "Austria"
    }
  ]
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66984336

复制
相关文章

相似问题

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