如何将JToken转换为string []? - c#

我正在尝试从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()? - java

Improve 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应用程序前端发送的输入(在表单数据旁边)? - java

Web应用程序上的恶意用户是否可以通过任何可能的方式来操纵Web应用程序前端发送的输入(当然,这不是在谈论FORM DATA),但是发送的请求例如当我允许他编辑他的个人资料或他的内容时,他可能会操纵ID(userId或contentId),从而可能恶意地对其他用户的内容进行邪恶?这些输入固定在网页上并且不可编辑,但用户仍然可以操纵它们吗?用户是否可能以这种方…