2016-12-07 1 views
-2

Мне нужно создать следующий JSON:Как создать новый массив JSON с помощью C#

[ 
    { 
     "Name": [ 
     { 
      "First Name": "Adam" 
     }, 
     { 
      "Last Name": "Smith" 
     } 
     ] 
    } 
] 

Пожалуйста, помогите, как я попробовал все здесь и на Json.NET

Спасибо заранее.

+0

это то, что у меня есть из JSON и хотел бы переписать его на новый формат JSON с такой же структурой, хотя это выглядит странно, но угрюмый один должен быть умеет писать все, что когда-либо использовал эти инструменты !! ?? если это действительный json !!? –

+0

Я бы предположил, что это недействительно JSON, поскольку это коллекция на NAMES, которая должна быть последовательным типом объекта. Возможно, это может помочь http://www.jsoneditoronline.org/ –

+0

независимо от содержания, могу заверить вас, что структура действительна. –

ответ

0

Ну ... это забавно, как все работает, как только вы знаете, как его сделали :) а вот для тех, кто может иметь Та же проблема, это способ сделать это:

JObject myObject = 
     new JObject(
      new JProperty("Name", 
         new JArray(
           new JObject(
           new JProperty("First Name", "Adam")), 
           new JObject(
           new JProperty("Last Name", "Smith"))))); 

JArray myArray = new JArray 
myArray.Add(myObject); 
1

ОТДЕЛЬНЫЙ ОТВЕТ: Удален старый ответ, объясняющий, что я думал о проблеме с JSON в вопросе. Измененный строить объекты C#, которые могли бы создать строку JSON выше, не пробовал это, но я думаю, что это должно работать:

Вот C# классы:

public class Name 
{ 
    [JsonProperty(PropertyName = "First Name")] 
    public string FirstName { get; set; } 
    [JsonProperty(PropertyName = "Last Name")] 
    public string LastName { get; set; } 
} 

public class RootObject 
{ 
    [JsonProperty(PropertyName = "Name")] 
    public List<Name> Name { get; set; } 
} 

Создание объектов имен в RootObject:

var myRootObj = new RootObject(); 
myRootObj.Name = new List<Name>(); 

var firstNameObj = new Name() { FirstName = "Adam" }; 
var secondNameObj = new Name() { LastName = "Smith" }; 

myRootObj.Name.Add(firstNameObject); 
myRootObj.Name.Add(secondNameObject); 

Теперь позволяет преобразовать этот объект в JSON:

var json = JsonConvert.SerializeObject(myRootObj, Newtonsoft.Json.Formatting.None, 
          new JsonSerializerSettings { 
           NullValueHandling = NullValueHandling.Ignore 
          });); 

I убежище» т пробовал это, но я думаю, что он должен создать строку JSON, например, как показано ниже:

{ 
     "Name": [ 
     { 
      "First Name": "Adam" 
     }, 
     { 
      "Last Name": "Smith" 
     } 
     ] 
    } 
+0

Вы правы, но у меня есть этот json так, как я написал, и вам просто нужно его реконструировать !!? –

+0

Возможно, проверьте это: http://www.jsoneditoronline.org/ –

+0

Большое спасибо за ссылку, поскольку она кажется очень удобным инструментом для будущего использования, но, к сожалению, не для решения проблемы. –