首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fastJson反序列化未处理的异常

fastJson反序列化未处理的异常
EN

Stack Overflow用户
提问于 2012-10-15 17:44:06
回答 1查看 2.7K关注 0票数 5

我使用fastJson库将json字符串反序列化为"Person“对象。Person类的定义如下:

代码语言:javascript
复制
class Person
{
    public string type;
    public string id;
    public string name;
}

Json字符串是:

代码语言:javascript
复制
[{
"type": "/basketball/basketball_player", 
"id": "/en/rasheed_wallace", 
"name": "Rasheed Wallace"
},
{
"type": "/basketball/basketball_player", 
"id": "/en/tayshaun_prince", 
"name": "Tayshaun Prince"
}]

当我使用代码时:

代码语言:javascript
复制
var obj = fastJSON.JSON.Instance.ToObject<List<Person>>(str);

它显示了一个未处理的异常,

代码语言:javascript
复制
Failed to fast create instance for type
'System.Collections.Generic.List`1[[JsonSample.Person, JsonSample, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null]]' from assemebly  
System.Collections.Generic.List`1[[JsonSample.Person, JsonSample, Version=1.0.0.0, 
Culture=neutral, PublicKeyToken=null]], mscorlib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089'

但是如果我使用下面的代码,在Newtonsoft.Json库中一切都可以正常工作:

代码语言:javascript
复制
var obj = JsonConvert.DeserializeObject<List<Person>>(str);

那么,这是fastJson的错误还是我没有以正确的方式使用fastJson?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-15 19:45:51

这是因为Person不是public。将您的类定义更改为

代码语言:javascript
复制
public class Person
{
    public string type;
    public string id;
    public string name;
}

我试着按原样运行你的代码,得到了同样的异常。我将Person修改为public,然后异常就消失了。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12893027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档