给定JSON中的数组,我试图找到将其转换为JArray的最佳方法。例如-考虑下面的C#代码:
var json = @"{
""cities"": [""London"", ""Paris"", ""New York""]
}";
Run Code Online (Sandbox Code Playgroud)
我可以将此JSON读入JObject,方法如下:
var jsonObject = JObject.Parse(json);
Run Code Online (Sandbox Code Playgroud)
现在,我将获得“城市”字段。
var jsonCities = jsonObject["cities"];
Run Code Online (Sandbox Code Playgroud)
在这里,我得到jsonCities作为type JToken。我知道jsonCities是一个数组,所以我想将其转换为JArray。我目前的工作方式是这样的-
var cities = JArray.FromObject(jsonCities);
Run Code Online (Sandbox Code Playgroud)
我试图找出是否有更好的方法将其转换为JArray。其他人如何使用它?
pek*_*aaw 18
在建议转换为 JArray 之后,我们可以通过检查空值来验证结果:
var jsonCities = jsonObject["cities"] as JArray;
if (jsonCities == null) return;
...do your thing with JArray...
Run Code Online (Sandbox Code Playgroud)
如dbc所述,代表 JArray 的 JToken 已经是 JArray。也就是说,如果 JToken.Type 等于JTokenType.Array。如果是这样,可以使用as JArray符号访问它。当as使用铸造符号,无法施放,将呈现一个null值,如解释在这里。这样可以方便地验证您是否确实获得了可以使用的 JArray。
JArray.FromObject(x)需要一个object,所以它可以与任何可以表示为 an 的东西一起使用,object因此肯定是一个 JToken。
在这种情况下,我们知道我们可以简单地从 JToken 转换为 JArray,因此它为我们提供了另一种可能性。我希望它更快,但我把它留给其他人来解决。
Der*_*rek -2
这里我们使用 C# 类通过反序列化字符串来存储 jsonString 的内容。
下面是一个基本示例。
如需进一步阅读,我将引导您访问 Newtonsoft.Json 网站。
https://www.newtonsoft.com/json/help/html/DeserializeObject.htm
class Program
{
static void Main(string[] args)
{
var json = @"{""cities"": [""London"", ""Paris"", ""New York""]}";
MyObject result = JsonConvert.DeserializeObject<MyObject>(json);
foreach (var city in result.Cities)
{
Console.WriteLine(city);
}
Console.ReadKey();
}
public class MyObject
{
[JsonProperty("cities")]
public List<string> Cities { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8954 次 |
| 最近记录: |