C# 10 / .NET 6 / System.Text.Json
我正在使用一个作为JSON响应返回的API。我正在尝试使用System.Text.Json
将JSON响应反序列化为一个类。我收到了一个JsonException,可以帮助理解我做错了什么。
我调用API并存储JSON响应:< code > string json = await Retreive。Fetch(目标);
下面是< code >控制台的输出。WriteLine(json):
[{"id": 1148082,"name": "TestGroup","group_type":"console_group","provisioning_guid": null,"member_count": 1,"current_risk_score": 36.3,"status": "active"},{"id": 1148788,"name": "Group2","group_type": "smart_group","provisioning_guid": null,"member_count": 9,"current_risk_score": 39.7,"status": "active"},{"id": 1148792,"name": "Group3","group_type": "smart_group","provisioning_guid": null,"member_count": 9,"current_risk_score": 39.7,"status": "active"}]
如果有帮助的话,这里有一个印刷精美的版本:
[
{
"id": 1148082,
"name": "TestGroup",
"group_type": "console_group",
"provisioning_guid": null,
"member_count": 1,
"current_risk_score": 36.3,
"status": "active"
},
{
"id": 1148788,
"name": "Group2",
"group_type": "smart_group",
"provisioning_guid": null,
"member_count": 9,
"current_risk_score": 39.7,
"status": "active"
},
{
"id": 1148792,
"name": "Group3",
"group_type": "smart_group",
"provisioning_guid": null,
"member_count": 9,
"current_risk_score": 39.7,
"status": "active"
}
]
使用Visual Studio 2022的Paste JSON As Classes函数,我得到了以下类结构:
public class Rootobject
{
public Class1[] Property1 { get; set; }
}
public class Class1
{
public int id { get; set; }
public string name { get; set; }
public string group_type { get; set; }
public object provisioning_guid { get; set; }
public int member_count { get; set; }
public float current_risk_score { get; set; }
public string status { get; set; }
}
我正在尝试:RooTobject? gag=JsonSerializer.Deserialize
抛出JsonException:
未处理的异常。系统。text . Json . JSON异常:JSON值无法转换为KB4.Rootobject。路径:$ | line number:0 | bytepositoninline:1。at系统。系统中的text . JSON . throw helper . throw JSON exception _ deserializable convertvalue(Type property Type)。text . JSON . serialization . converters . objectdefaultconverter < code > 1。OnTryRead(Utf8JsonReader
我尝试过的一些事情:
< li >将< code>Rootobject
类的名称更改为< code>GetAllGroups < li >考虑到响应中的JSON可能格式不正确,我将它粘贴到一个文本文件中,并从那里加载JSON,然后再次尝试反序列化。 < li >回顾了用C#反序列化JSON数组,但那是使用JavaScriptSerializer。
上述两种方法都不会产生不同的结果。
我做错了什么?
如果json从这个开始,Rootobject类就可以工作了
{ "property1": [{"id": 1148082,"name": .....] }
并且数组有一个属性名。但是你的json没有属性1,所以你应该直接开始反序列化json数组
Class1[] result = System.Text.Json.JsonSerializer.Deserialize<Class1[]>(json);
我想在不使用IDE的情况下执行我的程序。我已经创建了一个jar文件和一个可执行的jar文件。当我双击exe jar文件时,什么也没有发生,当我尝试在cmd中使用命令时,它给出以下信息: 我使用命令:java-jar Calculator.jar 我是如何创建jar的: 右键单击项目文件夹(计算器) 选择 单击Java文件夹并选择可执行罐文件,然后选择下一个 启动配置:主-计算器 创建出口目的地 命
我是如何创建罐子的: 右键单击项目文件夹(计算器) 选择 单击Java文件夹并选择“Exectuable Jar文件”,然后选择Next 启动配置:main-calculator 创建导出目标 打“完”获利!嗯,也不是。
" boolean cancel(boolean mayInterruptIfRunning)尝试取消此任务的执行。如果任务已经完成、已经取消或由于其他原因无法取消,此尝试将会失败 https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Future.html#cancel(布尔值) 除了上面列出的原因之外,还有什么其他原因会无
PyCharm 2018.1.3 pro/Python 3.6.1/模块:neo4j驱动程序1.5.3 奇怪的是,如果我尝试在PyCharm中使用脚本编辑器导入neo4j. v1并运行它,我会收到错误: Traceback(最近一次调用last):文件“C:/experiment/Cypher.py”,第1行,在from neo4j.v1导入graph database ModuleNotFoun
minecraft 1.8.8的modcoderpack918中的有一个很大的问题。我的Java版本是1.8.0_271-B09。 我不知道我必须做什么。
问题内容: 我正在尝试编写插件以在react- native中获得带有包名称和图标的应用列表。我正在以JSONArray的形式获取所有必需的数据,并且图像已存储在sdcard中。 我正在使用回调将结果(JSON数组)返回给javascript(成功或失败)。我收到上述错误。 请找到以下获取详细信息的Java代码。 包com.sampleapp; 在android.index.js中,我正在调用本机