我有一个逗号分隔的字符串值,如
100140
我需要将其转换为json字符串。应该像
{"人":[{" ID":" 100"},{" ID":" 140&# 34;}]}
请帮我解决一下。
答案 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();