【问题标题】:Convert a list of string into json format将字符串列表转换为 json 格式
【发布时间】:2013-07-25 18:08:15
【问题描述】:

如何转换字符串列表

 List<string> keys = new List<string>() { "1-12VEXP", "1-124DH9"};

转json格式同:

[["1-12VEXP"],["1-124DH9"]] 

在 .net 中。

我正在使用 Newtonsoft.Json 。

任何帮助将不胜感激。

【问题讨论】:

  • 你已经尝试过什么?您使用的是哪个 JSON 序列化程序? (如果你还没有使用任何东西,你真的应该选择一个......)
  • 这不是 JSON,您只需要 JSON.NET。
  • @JonSkeet Newtonsoft.Json
  • 注意你的要求 - 这两个不是一回事。您的 C# 对象是两个字符串的集合。您的 JSON 对象是一个包含两个数组的数组,每个数组包含一个项目。你要哪个?
  • 序列化不应该涉及字符串操作——这就是它的全部意义,不必自己处理格式。所以我不会推荐@newStackExchangeInstance 的方法(无论如何这都不对)。

标签: c# asp.net json


【解决方案1】:

直接序列化不起作用,因为项目不相等。如果你真的想要你想要的,那么你需要一个包含数组的数组,然后序列化该数组:

您可以先转换您的集合,然后进行简单的 JSON 序列化:

string[][] newKeys = keys.Select(x => new string[]{x}).ToArray();

string json = JsonConvert.SerializeObject(newKeys);

【讨论】:

  • 我在 WebMethod 中使用它。但它显示'名称'json object'在当前上下文中不存在'。 ??这里有什么问题?
  • @ShyamDixit 听起来您有一个单独的不相关问题,应该将其作为一个新问题发布。
【解决方案2】:

使用 Newtonsoft.Json:

JsonConvert.SerializeObject(keys);

会给你 JSON。

【讨论】:

  • 不幸的是,如果对于 IList 类型,这会给你类似 [“1-12VEXP”,“1-124DH9”] 的东西,这可能是不可用的;例如,如果他使用带有属性的自定义类型的 IList 类型,这将起作用。
猜你喜欢
  • 1970-01-01
  • 2019-04-01
  • 1970-01-01
  • 2013-02-04
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多