加载GSON的时候出现EOF错误

用GSON转换Json字符串为对象,从文件中加载字符串时:

File f = new File(Environment.getExternalStorageDirectory()
            + File.separator + "jsonTest");
    BufferedReader br = new BufferedReader(new FileReader(f));
    String Json = br.readLine();
    br.close();
    Gson gson = new Gson();
    dreFieldArray = gson.fromJson(Json, DreField[].class);

运行正常,但是,如果我用字符串资源代替的话:

String Json = this.getString(R.string.NewFileData);
Gson gson = new Gson();
    dreFieldArray = gson.fromJson(Json, DreField[].class);

就会出现EOF异常。字符串是从文件中复制的,所以应该是完全相同的,异常是在对象之后出现多余的字符串,不知道该怎么解决?谢谢帮忙

2个回答

getString()不能显示所有的特殊字符,要尽量不用,记录一下R.string.NewFileData的内容,看哪个字符丢失了,然后在strings.xml中避开那些字符,在移除字符前加上\


String Json = this.getString(R.string.NewFileData);
换为如下调试一下:
String Json= "{\"userName\":\"hello\",\"userId\":123}";
readLine以\r\n解析段,可能是尾部原因造成
你说一样的,还是以输出的为准。另外,报的错误,最好原样打印出来
EOF表示End of the file,为啥不提供更健全的Log错误输出呢
务必打印出IOException的e.printStackTrace();

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问