我正在尝试从JObject将数组读取为string [],但我不知道如何做。
该代码非常简单,如下所示,但不起作用。失败失败,无法将JToken转换为字符串[]
JObject Items = jsonSerializer.Deserialize<JObject>(jtr);
string[] brands = null;
brands = (string[])Items.SelectToken("Documents[0].Brands");
当我想阅读一个简单的bool时,以下内容适用,因此我知道自己来对地方了。
IsAdmin = (bool)Items.SelectToken("Documents[0].IsAdmin");
Documents [0]中的JObject如下所示
{
"id": "961AA6A6-F372-ZZZZ-1270-ZZZZZ",
"ApiKey": "SDKTest",
"ConsumerName": "SDKTest",
"IsAdmin": false,
"Brands": [
"ZZZ"
],
"IsSdkUser": true
}
如何将Brands数组读入我的string []品牌中?
参考方案
您可以使用JToken.ToObject<T>()
将JToken
反序列化为任何兼容的.Net类型,即
var brands = Items.SelectToken("Documents[0].Brands")?.ToObject<string []>();
在JToken
上进行强制转换操作(例如(bool)Items.SelectToken("Documents[0].IsAdmin")
)仅适用于Newtonsoft提供了显式或隐式转换运算符的原始类型,所有这些类型均记录在JToken Type Conversions中。由于没有为string[]
实现此类转换运算符,因此必须进行反序列化。
演示小提琴here。
如何将字符串转换为数组名称(php)? - php我有4个数组,每个数组都有一个问题和答案。我想选择一个随机的问题/答案数组。这是我的代码:<?php $query_1 = array("What is two plus three?", "5"); $query_2 = array("What is four plus two?", …
如何将来自c#函数的字符串添加到元标记(引号内)? - javascript这有效<title><%=MyLib.data.GetMetaTitle()%></title> 这不<meta name="description" content="<%=MyLib.data.GetMetaDescription()%>" > 返回值:&…
为什么我不能在Java中重写方法wait()? - javaImprove this question 我在类wait()中找到了方法Object。这是最终的,这意味着该方法不能被覆盖。有什么想法为什么是最终的? 参考方案 @Flavio-这实际上是一个很好的问题。当然,您不能覆盖它的原因是设计师将其“确定为最终”。做出此决定的一些潜在原因:您不希望人们弄乱基本类(“对象”类)上基本操作的语义。由于它是“最终的”,因…
如何用Java代码制作输入表单(不是使用JForm的Netbeans)? - java我想用Java创建输入表单,以便用户可以输入详细信息。像这样: 我的密码import java.awt.GridLayout; import javax.swing.*; class JOptionPaneTest { public static void main(String[] args) { String[] items = {"One…
Web应用程序上的恶意用户是否可以操纵Web应用程序前端发送的输入(在表单数据旁边)? - javaWeb应用程序上的恶意用户是否可以通过任何可能的方式来操纵Web应用程序前端发送的输入(当然,这不是在谈论FORM DATA),但是发送的请求例如当我允许他编辑他的个人资料或他的内容时,他可能会操纵ID(userId或contentId),从而可能恶意地对其他用户的内容进行邪恶?这些输入固定在网页上并且不可编辑,但用户仍然可以操纵它们吗?用户是否可能以这种方…