将逗号分隔的字符串转换为json

时间:2017-06-15 07:00:03

标签: c# json asp.net-mvc

我有一个逗号分隔的字符串值,如

  

100140

我需要将其转换为json字符串。应该像

  

{"人":[{" ID":" 100"},{" ID":" 140&# 34;}]}

请帮我解决一下。

3 个答案:

答案 0 :(得分:3)

考虑到您使用Json.net library,我建议您首先用逗号将字符串拆分为数组并将其序列化为字符串:

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

在我的示例中,我序列化了一个动态类型,但您可以使用ids数组实现自定义类Person。

答案 1 :(得分: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);
    }

答案 2 :(得分: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();