C# 是否有类似C+的JSON库+;RESTSDK web::json::可以取消序列化未知json的值
检查之前的答案(3100),找不到该问题的直接答案 问题: 当试图从服务器API解析数据时,根据与请求的资源相关联的数据,数据具有许多不同的布局 有时,答案是一些入口点的非结构化数据集合,而这些是应用程序需要解析的数据 Newtonsoft中的Json.NETJson.NET框架需要一个已定义的先决条件类,以匹配要反序列化的序列化Json的“先前已知结构” 显然,是针对<强>序列化和反序列化.NET对象< /强>,并使用.NET对象,<强> >但不< /强>序列化和反序列化JSON对象中的JSON,并与C++类REST SDK Web::JSON::ValueCype。< /P> 有些请求具有结构化信息,并通过定义.NET对象和反序列化来解决,但当请求额外的资源数据时,答案可能是(除其他外): 或 或C# 是否有类似C+的JSON库+;RESTSDK web::json::可以取消序列化未知json的值,c#,json,xamarin.forms,C#,Json,Xamarin.forms,检查之前的答案(3100),找不到该问题的直接答案 问题: 当试图从服务器API解析数据时,根据与请求的资源相关联的数据,数据具有许多不同的布局 有时,答案是一些入口点的非结构化数据集合,而这些是应用程序需要解析的数据 Newtonsoft中的Json.NETJson.NET框架需要一个已定义的先决条件类,以匹配要反序列化的序列化Json的“先前已知结构” 显然,是针对序列化和反序列化.NET对象< /强>,并使用.NET对象, >但不< /强>序列化和反序列化JSON对象中的JSON,并与C+
有人知道有没有办法(技巧、黑客)来实现这一点,或者有没有办法支持通用JSON对象,这些对象可以用于序列化、反序列化和查询、设置、修改JSON对象?您可以使用
ExpandoObject
:
var converter = new ExpandoObjectConverter();
dynamic obj = JsonConvert.DeserializeObject<ExpandoObject>(json, converter);
var converter=新的ExpandoObjectConverter();
dynamic obj=JsonConvert.DeserializeObject(json,converter);
您可以使用Newtonsoft解析JObject/JArray中的json字符串,而无需预定义C#类反序列化和序列化用于在对象之间转换格式,解析用于json,newtonsoft可以解析json,您可以查询json而无需将其放入Objects中修改您的问题以删除对另一个库的请求,因为特别学究的人会看到作为offtopic:)引发了异常:System.InvalidCastException:指定的强制转换无效。at(wrapper castclass)System.Object:uuu castclass_和Newtonsoft.Json.JsonConvert.DeserializeObject[T](System.String值,Newtonsoft.Json.JsonConverter[]转换器)的缓存(Object,intptr,intptr)在Newtonsoft.Json.JsonConverter[]中提供的Json输入是什么?第一个(没有额外信息时):'Json=“[null];'还有另外两个示例和一个长期测试。它不需要ExpandoObjectConverter变量:converter,just dynamic obj=JsonConvert.DeserializeObject(json);。这将创建一个动态Newtonsoft.Json.Linq.JContainer基类,如果传递的是“null”Json,则创建一个null对象。带有null元素的数组生成带有null标记的数组容器。
[
{
"item": "value"
}
]
[
{
"item": "value"
},
{
"item2": {}
},
{
"item3": {
"feature": "string feature",
"feature2": {
"object feature": "large object (replaced by string for simplicity)"
}
}
},
{
"item4": "large object (replaced by string for simplicity too)"
}
]
var converter = new ExpandoObjectConverter();
dynamic obj = JsonConvert.DeserializeObject<ExpandoObject>(json, converter);