我遇到了
这样的问题要解决此错误,可以将JSON更改为JSON数组(例如[1,2,3]),也可以更改反序列化类型,使其成为普通的.NET类型(例如,不是整数之类的原始类型,而不是可以从JSON对象反序列化的集合类型(如数组或
List<T>
)。还可以将JsonObjectAttribute添加到类型中,以强制其从JSON对象反序列化。
我的json文件
{age : 20}
userinfo.cs
[System.Serializable]
public class UserInfo
{
public string age ;
[Newtonsoft.Json.JsonConstructor]
public UserInfo(string _age )
{
age = _age ;
}}
main.cs
public List<UserInfo>userInfoListw
userInfoListw = JsonConvert.DeserializeObject<List<UserInfo>>(Resources.Load<TextAsset>("User").ToString());
我知道解决方案之一可能是[{age : 20}]
,
但我真的不想将[]
放入我的Json文件中,
请让我知道另一种解决方法。
答案 0 :(得分:0)
我知道解决方法之一可能是[{age:20}],但我真的不想将[]放入我的Json文件中,请让我知道另一种解决方法
好吧,您正在将JSON数据反序列化为List对象。但是您的JSON数据实际上不是列表。
{age : 20}
如果将其反序列化为列表,则Newtonsoft的库将期望JSON中的集合(如您所指出的那样,使用数组括号)。所以它是一个列表,或者不是。您可以将其设为具有单个元素的集合-要求您将JSON包装在您不想使用的方括号中,也可以更改代码以免将其反序列化为List :
public UserInfo userInfow
userInfow = JsonConvert.DeserializeObject<UserInfo>(Resources.Load<TextAsset>("User").ToString());