2017-09-18 4 views
1

C# 및 Newtonsoft를 사용하여 JSON으로 변환하려는 목록이 있습니다.목록을 C# 및 Newtonsoft를 사용하여 <string>을 JSON으로 변환

태그

[0]: "foo" 
[1]: "bar" 

출력 할 수 있습니다 : -

{"tags": ["foo", "bar"]} 

사람이 올바른 방향으로 제발 포인트? 목록을 JSON으로 변환 할 수 있지만 핵심은 여기에 JSON에서 "tags"부분이 필요합니다.이 부분은 JsonConvert.SerializeObject(tags)을 사용하여 변환하지 않습니다.

+0

죄송하지만 처음 사용합니다. 목록은 다음과 같이 태그되어야합니다. [0] "Foo"[1] "Bar" – chillifoot

+0

자신의 글을 [편집] (https://stackoverflow.com/posts/46277282/edit) 할 수 있습니다. 또한 [편집 도움말] (https://stackoverflow.com/editing-help) 페이지를 읽을 수도 있습니다. – waka

답변

3

아래 코드는 익명 형식으로 목록을 래핑하므로 찾고있는 내용을 생성합니다. 이 작업을 수행하는

using System; 
using System.Collections.Generic; 
using Newtonsoft.Json; 

namespace Test 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var list = new List<string> {"foo", "bar"}; 

      var tags = new {tags = list}; 

      Console.WriteLine(JsonConvert.SerializeObject(tags)); 

      Console.ReadLine(); 
     } 
    } 
} 
1

틀림없이 가장 쉬운 방법은 이것이 당신이 기대하는 출력을 제공 직렬화 할 때 당신의 List<string> 재산 다음

public class Wrapper 
{ 
    [JsonProperty("tags")] 
    public List<string> Tags {get; set; } 
} 

와 함께 래퍼 객체를 작성하는 것입니다.

var obj = new Wrapper(){ Tags = new List<string>(){ "foo", "bar"} }; 
var json = JsonConvert.SerializeObject(obj); 
Console.WriteLine(json); 
// outputs: {"tags":["foo","bar"]} 

라이브 예 : http://rextester.com/FTFIBT36362

1

은 다음과 같이 별도의 클래스를 만듭니다 다음

public class TagList 
{ 
    [JsonProperty("tags")] 
    List<string> Tags { get; set; } 

    public TagList(params string[] tags) 
    { 
     Tags = tags.ToList(); 
    } 
} 

전화 :

JsonConvert.SerializeObject(new TagList("Foo", "Bar")); 
0

을 당신은 그런 목록을 포장 anonymous object을 사용할 수 있습니다 :

JsonConvert.SerializeObject(new {Tags = tags}); 
0

다음과 같이 사용하십시오.

var data = new { tags = new List<string> { "foo", "bar" } }; 
var str = Newtonsoft.Json.JsonConvert.SerializeObject(data); 

출력 :

{ "태그": [ "foo는", "바"]}이 도움이

희망.