0

我正在尝试使用 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异常。资源中的字符串是从文件中复制的,所以它应该是相同的。我读到如果对象后面有多余的字符,可能会发生此异常,但我看不到任何字符。关于这里出了什么问题的任何想法?

4

2 回答 2

1

getString()不会显示所有特殊字符。你可能不得不逃离他们。

记录 的内容R.string.NewFileData,查看丢失的字符,然后在 中转义strings.xml(在删除的字符前放一个“\”)

于 2012-12-03T19:52:15.327 回答
0

试试用怎么样

String Json= "{\"userName\":\"hello\",\"userId\":123}"

代替String Json = this.getString(R.string.NewFileData);

导致 readline 分析段落由\r\n

if you put message e.printStackTrace() of IOExceptionwill be more helpful

于 2012-12-04T05:27:30.820 回答