2017-06-15 282 views
-3

我有一個像轉換逗號分隔字符串JSON

100,140

我需要將其轉換成JSON字符串一個逗號分隔的字符串值。這應該是像

{ 「人」:[{ 「ID」: 「100」},{ 「ID」: 「140」}]}

請幫我一個解決方案。

+0

請提供有關您正在使用的內容(框架/庫/技術)的更多詳細信息。現在我們不知道你到底想做什麼。 – gkempkens

+0

我想將結果作爲查詢字符串傳遞給api – AJIN

+0

輸入是一組ID。 – AJIN

回答

1

考慮您使用Json.net library,我建議先您的字符串分割由逗號數組它andserialize字符串:

var ids = "100,140".Split(','); 
var personsString = JsonConvert.SerializeObject(new { person = ids.Select(x => new { id = x }).ToList()}); 

在我的例子,我序列化的動態類型,但你可以實現你的自定義類人的智慧hids數組。

+0

我正在使用** Newtonsoft.json **。讓我試試這個解決方案。 – AJIN

0

在MVC中,你有Json串行器在控制器中。只要創建一個描述你的情況下,你的JSON模式將是:

public class Model 
    { 
     public IEnumerable<Person> person { get; set; } 
    } 

    public class Person 
    { 
     public int id { get; set; } 
    } 

然後在你的控制器,你能做到這一點:

public JsonResult GetData() 
    { 
     var str = "100,140"; // your string 
     Model model = new Model(); 
     //parse string to model 
     model.person = str.Split(',').Select(x => new Person { id = Convert.ToInt32(x) }); 
     //serialize to json 
     return Json(model); 
    } 
0

首先拆分你的字符串並存儲在一個數組中。 然後將你的字符串轉換成jsonObjects。 將jsonobjects添加到jsonarray。 請按照下面的代碼。它正在工作。

 string split = "100,140"; 
     string[] datas = split.Split(','); 
     JsonArray jsonArry = new JsonArray(); 
     JsonObject jsonobj = new JsonObject(); 
     JsonObject jsonobj2 = new JsonObject(); 
     foreach (string data in datas) 
     { 
      jsonobj.SetNamedValue("id", JsonValue.CreateStringValue(data)); 
      jsonArry.Add(jsonobj); 
     } 
     jsonobj2.SetNamedValue("person", jsonArry); 

您還可以將jsonobject轉換爲字符串。

 string jsonString = jsonobj2.ToString();