在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<details>(response.Content);
。以上是关于在c#中将简单的json转换为字符串数组的主要内容,如果未能解决你的问题,请参考以下文章