使用 gson 错误转换 json 预期为 BEGIN_OBJECT,但在第 1 行第 2 列路径 $ 处为 BEGIN_ARRAY

2024-01-09

[{"user_id":"5633795","username":"_Vorago_","count300":"203483","count100":"16021","count50":"1517","playcount":"1634","ranked_score":"179618425","total_score":"1394180836","pp_rank":"34054","level":"59.6052","pp_raw":"1723.43","accuracy":"96.77945709228516","count_rank_ss":"1","count_rank_s":"19","count_rank_a":"17","country":"US","events":[]}]

我正在尝试使用 GSON 转换上面的 JSON,但遇到了错误。

package com.grapefruitcode.osu;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;

import com.google.gson.Gson;

public class Main {

static String ApiKey = "";
public static void main(String[]Args) throws Exception{
    String json = readUrl("");
    System.out.println(json);
    Gson gson = new Gson();
    User user = gson.fromJson(json, User.class);
    System.out.println();
}

private static String readUrl(String urlString) throws Exception {
    BufferedReader reader = null;
    try {
        URL url = new URL(urlString);
        reader = new BufferedReader(new InputStreamReader(url.openStream()));
        StringBuffer buffer = new StringBuffer();
        int read;
        char[] chars = new char[1024];
        while ((read = reader.read(chars)) != -1)
            buffer.append(chars, 0, read); 

        return buffer.toString();
    } finally {
        if (reader != null)
            reader.close();
    }
}

}

出于安全原因,url 和 api key 留空,当我运行代码时变量会被填充,并且 json 会正确转换为字符串。我已经测试过了。如果有人能告诉我是什么原因导致了错误,那就太好了。

package com.grapefruitcode.osu;

public class User {
 String user_id = "";
 String username = "";
 String count300 = "";
 String count100= "";
}

In JSON

  • [ ... ]代表数组
  • { ... }代表物体,

so [ {...} ]是包含一个对象的数组。尝试使用

Gson gson = new Gson();
User[] users = gson.fromJson(json, User[].class);
System.out.println(Arrays.toString(users));
//or since we know which object from array we want to print
System.out.println(users[0]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 gson 错误转换 json 预期为 BEGIN_OBJECT,但在第 1 行第 2 列路径 $ 处为 BEGIN_ARRAY 的相关文章

随机推荐

  • Laravel 队列工作者与 cron

    我试图让我的网站在每次有人新注册时发送确认电子邮件 我在阅读完相关内容后按照下面的方式做了 但我仍然不相信这是最好的方法 在我的 cron 中每分钟运行并调用php artisan schedule run 在我的控制台 内核中 prote
  • 在 Vue 中显示基于 prop 的条件文本的其他方式?

    我有一个根据用户成员资格状态呈现文本的组件 我想根据该 prop 值更改插值文本 除了一堆 div p 标签之外 是否有更有效的方法来根据 prop 显示不同的文本v if or v show 不断有一堆堆叠的 div 只是大量的文本 任何
  • AngularJS - 使用 ENTER 键接受 ui.bootstrap 模式

    问题 我无法使用 ENTER 键接受模态窗口 我已经修改了默认的 Plunker 来向您展示我从现在开始所做的事情 gt Here http plnkr co edit 8OeJyEOBxm7B2aVHMyQ6 p preview 我拥有的
  • Discord.js 禁用“交互失败”

    如果交互 例如点击按钮 没有得到回复 discord 会在客户端显示 交互失败 他们希望你做什么 inter reply stuff 我想做的事 inter channel send stuff 这不是一个错误 我只是想防止出现 交互失败
  • 无法将视图放置在 RecyclerView 下方

    我无法放置Adview低于一个RecyclerView 目前RecyclerView占据了布局的其余部分并且Adview没有显示 我在网上找到的解决方案都没有解决我的问题 通常layout weight or layout below解决了
  • 蟒蛇姜戈。如何实时更新消息和通知徽章中的计数[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 i m currently working on app where users can send messages to each
  • 错误:jarfile sbt/sbt-launch-0.13.5.jar 无效或损坏

    我一直在尝试使用安装sparktutorial http blog prabeeshk com blog 2014 10 31 install apache spark on ubuntu 14 dot 04 每次运行命令 sbt sbt
  • UIMenuController 隐藏键盘

    我目前有一个用于聊天的应用程序 我使用 UItextField 作为输入框 使用气泡来显示消息 比如系统短信 我想在消息气泡 标签 上启用复制粘贴 问题是 当我想显示 UIMenuController 时 我需要复制的标签需要成为第一响应者
  • 如何在 Windows 中设置 MCR_CACHE_ROOT

    我知道这可能是一个简单的问题 但如何在 Windows 中设置 MCR CACHE ROOT 可以给我详细的步骤吗 我应该在哪里指向 MCR CACHE ROOT 的路径以加快编译的应用程序启动时间 对于 Windows 7 您可以将其设置
  • 获取 NSTableView 中内容的高度

    有没有办法获得内容的高度NSTableView 在 iOS 中 您可以使用 contentSize的方法UIScrollView 但是 那 contentSize的方法NSScrollView似乎只返回可见部分的高度NSScrollView
  • 为什么对 UUID 进行 MD5 处理不是一个好主意?

    PHP 有一个uniqid https www php net manual en function uniqid php生成某种 UUID 的函数 在使用示例中 它显示了以下内容 token md5 uniqid 但在评论中 有人这么说
  • 如何知道中断是否被禁用?

    有什么方法 或有用的函数 可以知道中断是否被禁用 您可以使用irqs disabled 功能 include
  • 在信标上循环

    Override public void onBeaconServiceConnect BeaconManager beaconManager BeaconManager getInstanceForApplication this bea
  • 如何处理作为单个指令的操作数的多个溢出值?

    我想实施线性扫描寄存器分配Poletto 和 Sarkar 提出的算法 http www seas gwu edu hchoi teaching cs160d linearscan pdf 它非常简单 为每个活动间隔分配一个寄存器或堆栈位置
  • 调用未定义的方法 MongoDB\Driver\ReadConcern::isDefault()

    我真的不知道问题是什么 https i stack imgur com KeeOb png class RegisterController extends Controller public function store request
  • 更改ckeditor的背景?

    如何更改用户键入文本的 CKEditor 的背景颜色 我需要动态地执行此操作 但找不到需要更改的元素 知道如何瞄准它吗 您可以尝试 CKEDITOR instances editor1 document getBody setStyle b
  • 检查密码是否包含字母数字和特殊字符

    如何检查字符串passwordText是否至少包含 1 个字母字符 1 号 1 个特殊字符 符号 尝试这个 bool result passwordText Any c gt char IsLetter c passwordText Any
  • Android 中的无效区域是什么?

    在 Android如何绘制视图 主题下 有这样一句话 绘图从根节点开始 布局 要求测量 并绘制布局树 绘图是 通过走树来处理 渲染每个相交的视图 这无效区域 而且我不太理解 无效区域 这个词 这里是引文的来源文章 http develope
  • Jquery Mobile 弹出菜单不起作用

    我正在尝试构建一个虚拟页面来理解 Jquerymobile 但我无法实现 菜单 单击页面上的菜单按钮 处理以下链接 http jquerymobile com branches popup widget docs pages popup i
  • 使用 gson 错误转换 json 预期为 BEGIN_OBJECT,但在第 1 行第 2 列路径 $ 处为 BEGIN_ARRAY

    user id 5633795 username Vorago count300 203483 count100 16021 count50 1517 playcount 1634 ranked score 179618425 total