2016-03-10 2 views
0

Я пытаюсь создать объект, который будет возвращен как JSON для моей веб-службы REST.Создайте строку JSON в C#

Я хочу, чтобы получить что-то возвращается, как это:

{ 
    "message": [ 
    { 
     "name": "whatever.bmp" 
    } 
    ], 
    "errors": null, 
    "FileInflected": 0, 
    "path": "C:\thepath" 
} 

Итак, как я могу изменить класс (eFileOutput) в C#?

Как я могу изменить класс, который у меня ниже?

В настоящее время я в состоянии создать подобный вывод, как это:

{ 
    "message": "Hello World", 
    "errors": null, 
    "FileInfected": 0, 
    "path": "C:\bla bla..." 
} 

и мой C# класс следующим образом:

[DataContract] 
    public class eFileOutput 
    { 
     [DataMember] 
     public string message { get; set; } 
     [DataMember] 
     public string errors { get; set; } 
     [DataMember] 
     public Int32 FileInfected { get; set; } 
     [DataMember] 
     public string path { get; set; } 
    } 

Tks

+1

Что именно вы пытаетесь сделать, это не работает? – StarterPack

+0

Возможный дубликат [Как создать строку JSON в C#] (http://stackoverflow.com/questions/1056121/how-to-create-json-string-in-c-sharp) – VVN

ответ

1

Это классы, которые представляют собой JSON, вы заявили:

public class Message 
{ 
    public string name { get; set; } 
} 

public class MyObject 
{ 
    public List<Message> message { get; set; } 
    public object errors { get; set; } 
    public int FileInflected { get; set; } 
    public string path { get; set; } 
} 
var json = Newtonsoft.Json.JsonConvert.SerializeObject(new MyObject 
{ 
    message = new List<Message> 
    { 
     new Message {name = "whatever.bmp"} 
    }, 
    FileInflected = 0, 
    path = @"c:\thepath" 
}); 

Edit (благодаря devzero): Тогда вы можете сериализовать с помощью Newtonsoft (мой любимый) или JavaScriptSerializer, как указано здесь: Turn C# object into a JSON string in .NET 4

+0

Добавлено редактирование, которое фактически создает исправьте JSON со значениями сверху в json-переменную. – devzero

+0

Tks много, это было полезно! – Trowa

0
public class MyObject 
{ 
    public Message Message { get; set; } 

    public List<Error> Errors { get; set; } 

    public int FileInflected { get; set; } 

    public string Path { get; set; } 
} 

public class Message 
{ 
    public string Name { get; set; } 
} 

public class Error 
{ 
    //Whatever you want 
} 

и если вы хотите сериализовать член как верблюжьего, описать так:

var jsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }; 
var json = JsonConvert.SerializeObject(c, jsonSerializerSettings); 
Смежные вопросы