Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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
Unity3D webplayer中JSON.Net中缺少MethodException_Unity3d_Json.net - Fatal编程技术网

Unity3D webplayer中JSON.Net中缺少MethodException

Unity3D webplayer中JSON.Net中缺少MethodException,unity3d,json.net,Unity3d,Json.net,我正在Unity3D、Dotnet2版本上使用JSON.NET5.0r6序列化对象。我可以在编辑器构建的Webplayer模式下运行它,但是当我部署到Webplayer时。我缺少一个例外。我可以让相同的代码在Android上正常运行(无需剥离),因此这不是代码方面 MissingMethodException: Method not found: 'System.Collections.ObjectModel.KeyedCollection<System.String,Newtonsoft

我正在Unity3D、Dotnet2版本上使用JSON.NET5.0r6序列化对象。我可以在编辑器构建的Webplayer模式下运行它,但是当我部署到Webplayer时。我缺少一个例外。我可以让相同的代码在Android上正常运行(无需剥离),因此这不是代码方面

MissingMethodException: Method not found: 'System.Collections.ObjectModel.KeyedCollection<System.String,Newtonsoft.Json.Serialization.JsonProperty>..ctor'.
  at Newtonsoft.Json.Serialization.JsonObjectContract..ctor (System.Type underlyingType) [0x00000] in <filename unknown>:0 

  at Newtonsoft.Json.Serialization.DefaultContractResolver.CreateObjectContract (System.Type objectType) [0x00000] in <filename unknown>:0 

  at Newtonsoft.Json.Serialization.DefaultContractResolver.CreateContract (System.Type objectType) [0x00000] in <filename unknown>:0 

  at Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract (System.Type type) [0x00000] in <filename unknown>:0 

  at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.GetContractSafe (System.Object value) [0x00000] in <filename unknown>:0 

  at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize (Newtonsoft.Json.JsonWriter jsonWriter, System.Object value, System.Type objectType) [0x00000] in <filename unknown>:0 

  at Newtonsoft.Json.JsonSerializer.SerializeInternal (Newtonsoft.Json.JsonWriter jsonWriter, System.Object value, System.Type objectType) [0x00000] in <filename unknown>:0 

  at Newtonsoft.Json.JsonSerializer.Serialize (Newtonsoft.Json.JsonWriter jsonWriter, System.Object value, System.Type objectType) [0x00000] in <filename unknown>:0 

  at Newtonsoft.Json.JsonConvert.SerializeObject (System.Object value, System.Type type, Formatting formatting, Newtonsoft.Json.JsonSerializerSettings settings) [0x00000] in <filename unknown>:0 

  at Newtonsoft.Json.JsonConvert.SerializeObject (System.Object value, Formatting formatting, Newtonsoft.Json.JsonSerializerSettings settings) [0x00000] in <filename unknown>:0 
MissingMethodException:找不到方法:“System.Collections.ObjectModel.KeyedCollection..ctor”。
位于Newtonsoft.Json.Serialization.JsonObjectContract..ctor(System.Type underyingType)[0x00000]中:0
位于:0中的Newtonsoft.Json.Serialization.DefaultContractResolver.CreateObjectContract(System.Type objectType)[0x00000]
位于:0中的Newtonsoft.Json.Serialization.DefaultContractResolver.CreateContract(System.Type objectType)[0x00000]
位于:0中的Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract(System.Type类型)[0x00000]
位于Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.GetContractSafe(System.Object值)[0x00000]中:0
在Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.serializate(Newtonsoft.Json.JsonWriter-JsonWriter-JsonWriter,System.Object-value,System.Type-objectType)[0x00000]中:0
位于Newtonsoft.Json.JsonSerializer.SerializeInternal(Newtonsoft.Json.JsonWriter-JsonWriter-JsonWriter,System.Object-value,System.Type-objectType)[0x00000]中:0
在Newtonsoft.Json.JsonSerializer.Serialize(Newtonsoft.Json.JsonWriter-JsonWriter-JsonWriter,System.Object-value,System.Type-objectType)[0x00000]中:0
在Newtonsoft.Json.JsonConvert.SerializeObject(System.Object值、System.Type类型、格式设置、Newtonsoft.Json.JsonSerializerSettings设置)[0x00000]中:0
在Newtonsoft.Json.JsonConvert.SerializeObject(System.Object值,格式化,Newtonsoft.Json.JsonSerializerSettings设置)[0x00000]中:0

发现了另一个类似的问题,似乎是Unity3D再次出错


不幸的是,在JSON.Net中实现的
KeyedCollection
(最初在mscorlib中)的使用存在问题

对我来说,解决方案是用

我在JSON.Net中实际使用的两个方法是

    //JSON.Net
    JsonConvert.DeserializeObject<YourClass>(jsonSring);
    JsonConvert.SerializeObject(yourObject);
//JSON.Net
反序列化对象(JSONString);
序列化对象(yourObject);
你可以很容易地用

    //LitJson
    JsonMapper.ToObject<YourClass>(jsonSring);
    JsonMapper.ToJson(yourObject);
//LitJson
JsonMapper.ToObject(jsonString);
ToJson(yourObject);

我有一些代码可以对原始字节数组进行打包,如果您需要的话,这些代码非常干净?