gpt4 book ai didi

c# - 动态 JObject - 解析无效的 JSON

转载 作者:行者123 更新时间:2023-11-30 15:59:50 25 4
gpt4 key购买 nike

考虑我有以下 json:

{ "version": "1.0" }

我可以将它解析为动态 JObject 并使用:

dynamic result = JObject.Parse(myJson);
string verison = result.Version; //works <3

但是服务器返回以下json

{ { "version": "1.0" } }

此 json 被 newtonsoft 视为有效,但无法再访问版本:

dynamic result = JObject.Parse(myJson);
string verison = result.Version; //error

只有动态result可用时,如何获取Version

最佳答案

{ { "version": "1.0" } } This json is consider as valid by newtonsoft

这是不正确的,您将无法解析它并将收到类型为 Newtonsoft.Json.JsonReaderException 的异常(带有:无效的属性标识符字符:{.Path '',第 1 行, 位置 2.)


无效的 JSON:

{ { "version": "1.0" } }

有效的 JSON:

{ "version": "1.0" }

(如果您有服务器控制权,我建议您在服务器上执行必要的步骤以返回有效的 JSON)

但是,在最坏的情况下,您可以通过在解析之前删除第一个字符 { 和最后一个字符 } 来使这个无效的 JSON 有效。例如像这样:

 var myJson = json.Substring(1, json.Length - 2);

dynamic result = JObject.Parse(myJson);
string version = result.version;

此处的 json 是包含无效 JSON 的原始响应。


另请注意,对于您提供的 JSON,您必须使用小写的 version 作为 result.version。动态属性名称必须完全 JSON 中的名称

关于c# - 动态 JObject - 解析无效的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40964686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com