【问题标题】:Convert simple json to string array in c#在c#中将简单的json转换为字符串数组
【发布时间】:2019-11-05 22:36:20
【问题描述】:

我是 C# REST API 的新手...我只是将 JSON 转换为字符串数组

这是我的 JSON

[{"Id":1000,"Name":"May","Address":"Atlanda","Country":"USA","Phone":12345}}

如下代码转换数组

string[] details={1000,May,Atlanda,USA,12345};

帮我解决这个问题

我的代码

 public class details
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public string Address { get; set; }
            public string Country { get; set; }
            public int Phone { get; set; }
      }

这是我的课

          var client = new RestClient("http://localhost:3000/customer/1000");
            var request = new RestRequest(Method.GET);
            IRestResponse response = client.Execute(request);
            string json = new JavaScriptSerializer().Serialize(response.Content);

【问题讨论】:

  • A minimal reproducible example 在代码中定义了 json 会很棒。请务必指定您尝​​试生成的确切输出。
  • ...int Phone ?这不能很好地处理国家/地区代码的前导零......
  • 只有它的样本
  • 您希望 JSON 字符串反序列化为 details 类吗?
  • No.. Json 到数组

标签: c# arrays json json.net


【解决方案1】:

如果您使用 JSON.NET,它肯定会让您的事情变得更轻松。我的答案使用 JSON.NET:

string str = "[{\"Id\":1000,\"Name\":\"May\",\"Address\":\"Atlanda\",\"Country\":\"USA\",\"Phone\":12345}]";

var listOfDetails = JsonConvert.DeserializeObject<List<details>>(str);
foreach (var detail in listOfDetails)
{
    var arr = detail.ToArr();
}

下面是details 类:

public class details
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
    public string Country { get; set; }
    public int Phone { get; set; }

    public string[] ToArr()
    {
        List<string> list = new List<string> { Id.ToString(), Name, Address, Country, Phone.ToString() };
        return list.ToArray();
    }
}

结果:

【讨论】:

  • 如何将 arr 作为参数传递
  • @Harish 你想在foreach 循环之外使用arr 吗?
  • 是的@FaizanHussainRabbani
  • 可以在foreach循环之外使用arr吗?
  • 是的,你可以像arr[0]一样使用它
【解决方案2】:

您可以使用新的System.Text.Json API 将response.Content 反序列化为details 类,如下所示

JsonSerializer.Parse<details>(response.Content);

更多信息请阅读Try the new System.Text.Json APIs。

【讨论】:

  • 显示JsonSerializer不包含parse的定义
  • 这个答案是使用微软制作的新 API,其中 JsonSerializer does 有一个 Parse 方法。但是,如果您使用的是 Json.Net,则需要改用 JsonConvert.Deserialize&lt;details&gt;(response.Content);。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-29
  • 1970-01-01
  • 2017-05-13
  • 1970-01-01
  • 2015-07-21
  • 1970-01-01
相关资源
最近更新 更多