Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有类似C+的JSON库+;RESTSDK web::json::可以取消序列化未知json的值_C#_Json_Xamarin.forms - Fatal编程技术网

C# 是否有类似C+的JSON库+;RESTSDK web::json::可以取消序列化未知json的值

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+

检查之前的答案(3100),找不到该问题的直接答案

问题:

当试图从服务器API解析数据时,根据与请求的资源相关联的数据,数据具有许多不同的布局

有时,答案是一些入口点的非结构化数据集合,而这些是应用程序需要解析的数据

Newtonsoft中的Json.NETJson.NET框架需要一个已定义的先决条件类,以匹配要反序列化的序列化Json的“先前已知结构”

显然,是针对<强>序列化和反序列化.NET对象< /强>,并使用.NET对象,<强> >但不< /强>序列化和反序列化JSON对象中的JSON,并与C++类REST SDK Web::JSON::ValueCype。< /P> 有些请求具有结构化信息,并通过定义.NET对象和反序列化来解决,但当请求额外的资源数据时,答案可能是(除其他外):


有人知道有没有办法(技巧、黑客)来实现这一点,或者有没有办法支持通用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);