【问题标题】:Value of type java.lang.String cannot be converted to JSONObject in androidjava.lang.String 类型的值无法在 android 中转换为 JSONObject
【发布时间】:2013-02-17 15:53:34
【问题描述】:

我正在从我的 android 项目中的 assets 文件夹中读取 json 文件。我正在尝试将读取 json 文件后返回的字符串转换为 JSONObject。我用谷歌搜索了很多,但在我的代码中找不到错误。其他人使用此代码取得了成功。任何人,如果我的方法有误或我的代码中有问题,请指导我。 在 - //1 行,我得到标题中所述的错误。

AssetManager am = getAssets();
        InputStream is;

        try 
        {
            is=am.open("places.json");
            int size = is.available();
            byte[] buffer = new byte[size];
            is.close();
            String bufferString = new String(buffer);
            JSONObject jo = new JSONObject(bufferString);    //1
            JSONObject pjo = jo.getJSONObject("Places");

【问题讨论】:

  • 你调试过bufferString吗?还是记录缓冲区字符串?
  • 您实际上并没有从资产中读取任何内容,只是分配了缓冲区。
  • 您的缓冲区应该包含字节字符串是空的。你只是声明它,但没有把正确的值放在那里。
  • 先读取文件内容......只是谷歌它如何读取文件:P

标签: android json string


【解决方案1】:

您应该考虑使用 JSONReader: http://developer.android.com/reference/android/util/JsonReader.html

从 API 级别 11 可用。 但我确信它也可以通过兼容性库 v4 获得

【讨论】:

  • 您提供的链接..in that following code, after reader.endObject();行跟随->返回新消息(图像,纬度,经度); -> 在这一行,我得到错误说明:构造函数 Message(String,String,String) 未定义
猜你喜欢
  • 1970-01-01
  • 2023-03-10
  • 2021-10-23
  • 2017-11-23
  • 1970-01-01
  • 1970-01-01
  • 2017-02-03
  • 2017-10-02
相关资源
最近更新 更多