org.json.JSONException:第 550 个字符处的预期文字值

2024-01-05

我正在尝试从 asset 文件夹中读取 JSON 文件。但我得到以下异常:

org.json.JSONException: Expected literal value at character 550

我搜索了很多东西但没有找到任何相关的东西。这是我的 JSON 文件:

{
"resultCount": 3,
"SearchedTerm": "Wada Pav",
"results": [
{
  "locationname": "Mahableshwar Hotel",
  "locationid": "12345",
  "locationaddress" : "baner, Pune",
  "dishrating": "4",
  "dishname": "Wada Pav",
  "dishid": "234",
  "dishcategory": "Snacks",
  "dishnotes": "Spicy Wada Pav",
  "dishpreviewurl":"http://xxx.yyy.zzz/mahableshwar/1.jpg",
  "dishtotalvotes": "9999",
  "friendslistvoted": {
            "friendscount": "3",
            "names": ["Santosh","Sandip","Arvind"],
          }
  "dishimageurl": "http://xxx.yyy.zzz/mahableshwar/2.jpg",
  "mylastrating": "4"
 } 
]
}

我发现 550 上的 JSON 对象是"names": ["Santosh","Sandip","Arvind"],。我正在尝试解决它,但不知道我的代码中会发生什么。这是我的代码:

try {

        input = assetManager.open("dishum-sample-search-results-json.txt");
        int size = input.available();
        byte[] buffer = new byte[size];
        input.read(buffer);
        input.close();
        
        // byte buffer into a string
        String text = new String(buffer);
        try{
        JSONObject jsonObject = new JSONObject(text);
         
        JSONObject searchedTerm = jsonObject.getJSONObject(TAG_SEARCHEDTERM);           
        JSONArray results = searchedTerm.getJSONArray(TAG_RESULTS);         
        for(int i=0; i<results.length(); i++)
        {
            JSONObject dishResult = results.getJSONObject(i);
            String locationName = dishResult.getString(TAG_lOCATIONNAME);
            int locationId = dishResult.getInt(TAG_LOCATIONID);
            String locationAddress = dishResult.getString(TAG_LOCATIONADDRESS);
            String dishNotes = dishResult.getString(TAG_DISHNOTES);
            int dishRating = dishResult.getInt(TAG_DISHRATING);
            JSONObject friendListVoted = dishResult.getJSONObject(TAG_FRIENDLISTVOTED);
            int friendCount = friendListVoted.getInt(TAG_FRIENDCOUNT);
            map.put(TAG_lOCATIONNAME, locationName);
            map.put(TAG_LOCATIONID, String.valueOf(locationId));
            map.put(TAG_LOCATIONADDRESS, locationAddress);
            map.put(TAG_DISHNOTES, dishNotes);
            map.put(TAG_DISHRATING, String.valueOf(dishRating));
            map.put(TAG_FRIENDCOUNT, String.valueOf(friendCount));              
            // adding HashList to ArrayList
            songsList.add(map); 
        }
        }
        catch(JSONException e)
        {
            Toast.makeText(this, "Error in parsing json file"+e, Toast.LENGTH_LONG).show();
        }

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

我也调试我的代码,但是当控制继续时JSONObject jsonObject = new JSONObject(text);它抛出异常并进入第一个 catch 块。我怎么解决这个问题?


您的 JSON 无效。
你的 JSON 应该是这样的

{
    "resultCount": 3,
    "SearchedTerm": "Wada Pav",
    "results": [
        {
            "locationname": "Mahableshwar Hotel",
            "locationid": "12345",
            "locationaddress": "baner, Pune",
            "dishrating": "4",
            "dishname": "Wada Pav",
            "dishid": "234",
            "dishcategory": "Snacks",
            "dishnotes": "Spicy Wada Pav",
            "dishpreviewurl": "http://xxx.yyy.zzz/mahableshwar/1.jpg",
            "dishtotalvotes": "9999",
            "friendslistvoted": {
                "friendscount": "3",
                "names": [
                    "Santosh",
                    "Sandip",
                    "Arvind"
                ]
            },
            "dishimageurl": "http://xxx.yyy.zzz/mahableshwar/2.jpg",
            "mylastrating": "4"
        }
    ]
}

在使用 JSON 验证器之前尝试使用它(例如JSLint http://jsonlint.com/).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

org.json.JSONException:第 550 个字符处的预期文字值 的相关文章

  • Android - 保存动态更改布局的状态

    我有一个布局 用户可以在其中添加按钮并将其放置在他们想要的位置 我想允许用户保存他们的布局 以便下次打开应用程序时加载它 有谁知道我是否可以将文件保存到 SD 卡上 或者 我可以使用某种layout getXml 方法并将其放入我的应用程序
  • BottomNavigationView - 如何获取选定的菜单项?

    我使用BottomNavigationView来切换片段 如何获取当前选定的菜单项 以防止重新打开片段 BottomNavigationView bottomNavigationView BottomNavigationView findV
  • 检测到设备正在振动?

    我使用下面的代码来振动设备 public void vibrator try Vibrator vibrator Vibrator getSystemService Context VIBRATOR SERVICE vibrator vib
  • Android - 如何一次只允许播放一个 MediaPlayer 实例?

    我正在尝试创建一个简单的 Sound board Android 应用程序 使用 ListView 项目作为按钮 顺便说一句 我是一个新手程序员 我的想法是 我按下一个按钮 就会播放一个特定的声音文件 如果我在播放声音时按下任何按钮 它应该
  • 导航组件重复 NavArgs 的问题

    我有一个片段 class SomeFragment private val args by navArgs
  • 为什么将函数参数声明为最终的?

    我目前正在阅读 Sams 出版的 24 小时自学 Android 应用程序开发 一书 我对 Java Android 或其他方面还比较陌生 我对 ActionScript 3 有非常扎实的背景 它与 Java 有足够的相似之处 因此该语言本
  • 在自定义对象中创建时粘性服务不会重新启动

    我有一个具有绑定服务的单例对象 我希望它重新启动 当我从启动器启动应用程序时 单例对象将初始化并绑定到这个现有的服务实例 以下是在单例中创建和绑定服务的代码 public class MyState private static MySta
  • 如何从 SQLite 获取记录总数

    我正在尝试从 Sqlite DB 获取行的总数 以下是我想要做的代码片段 我不知道我在这里做错了什么 public static int getTotalCount Context context Cursor c null try c g
  • RxJava、Proguard 和 sun.misc.Unsafe

    我有以下问题RxJava 1 1 0 使用时Proguard 我没有更改 RxJava 版本或其 pro文件 但更新后OkHttp我无法编译使用Proguard因为我有关于sun misc Unsafe不在场 rxJava pro keep
  • 无法在自定义 AOSP 上安装 Google Play 中的某些应用程序:项目不可用。理由:9

    我在尝试从 Google Play 安装某些应用程序时收到以下错误 LibraryUtils isAvailable not available restriction 9 DocUtils getAvailabilityRestricti
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • 如何查找 Android 设备中的所有文件并将它们放入列表中?

    我正在寻求帮助来列出 Android 外部存储设备中的所有文件 我想查找所有文件夹 包括主文件夹的子文件夹 有办法吗 我已经做了一个基本的工作 但我仍然没有得到想要的结果 这不起作用 这是我的代码 File files array file
  • 从 Firebase 数据库填充微调器

    public class MainActivity extends AppCompatActivity DatabaseReference reference Spinner areaSpinner ArrayList
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • ROOM迁移过程中如何处理索引信息

    CODE Entity tableName UserRepo indices Index value id unique true public class GitHubRepo PrimaryKey autoGenerate true p
  • 如何在不更改手机语言的情况下更改Android应用程序语言?

    我希望用户在应用程序内选择一种语言 选择语言后 我希望字符串使用特定语言 如果我更改手机语言 那么我的应用程序将以设置的语言运行 我无法找到任何在不更改手机语言的情况下设置语言的方法 此外 一旦设置了语言 更改就应该反映出来 有人可以建议一
  • Android Webview 图像未加载

    我制作了一个简单的应用程序WebView 但有些图片无法加载 正确 在我的电脑上 错误 在模拟器中 Correct 错误 没有横幅 于是我用Chrome debug进行调试 发现我的代码被改变了 我不添加像noscript or style
  • 材质设计图标颜色

    应该是哪种颜色 暗 材质图标 在官方文档上 https www google com design spec style icons html icons system icons https www google com design s
  • Android:有没有办法以毫安为单位获取设备的电池容量?

    我想获取设备的电池容量来进行一些电池消耗计算 是否可以以某种方式获取它 例如 三星 Galaxy Note 2 的电池容量为 3100mAh 谢谢你的帮助 知道了 在 SDK 中无法直接找到任何内容 但可以使用反射来完成 这是工作代码 pu
  • 在 Google 地图上绘制线条/路径

    我很长一段时间都在忙于寻找如何在 HelloMapView 中的地图上的两个 GPS 点之间画一条线 但没有运气 谁能告诉我该怎么做 假设我使用扩展 MapView 的 HelloMapView 我需要使用叠加层吗 如果是这样 我是否必须重

随机推荐