在c#中将简单的json转换为字符串数组

Posted

技术标签:

【中文标题】在c#中将简单的json转换为字符串数组【英文标题】:Convert simple json to string array in c# 【发布时间】: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 到数组 【参考方案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);

以上是关于在c#中将简单的json转换为字符串数组的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中将字符串转换为字节数组

在C#中将Char数组转换为字符串[重复]

在c#中将字符串转换为字符串数组

在c#中将字符串转换为字节数组

如何在c#中将ArrayList转换为字符串数组(字符串[])

如何在android中将json对象从json数组转换为字符串数组