为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 gson 将 json 数据转换为 java 对象?

如何使用 gson 将 json 数据转换为 java 对象?

拉风的咖菲猫 2022-10-12 16:04:58
我有一个json字符串。我想将其转换为 java 对象。我的实体类是Deneme.java.Result变量存储json字符串。我怎样才能做这个过程?我收到一个错误:Expected BEGIN_OBJECT but was BEGIN_ARRAY来自服务器的数据是, {"games":       [               {"game":"Football","probability":0.74656546},            {"game":"Football","probability":0.23432424},            {"game":"Football","probability":0.2342342343}       ] }Deneme.java是,import com.google.gson.JsonObject;import org.json.JSONArray;import java.util.List;public class Deneme {    private List<JsonObject> matches;    public List<JsonObject> getMatches() {        return matches;    }    public void setMatches(List<JsonObject> matches) {        this.matches = matches;    }}我的代码是:Gson gson = new Gson();Deneme obj = gson.fromJson(result, Deneme.class);
查看完整描述

2 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

使用您当前的结构,您可以使用以下内容:


    public class Deneme {


        private List<JsonObject> games;


        public List<JsonObject> getMatches() {

            return games;

        }


        public void setMatches(List<JsonObject> games) {

            this.games = games;

        }

    }


    public static void main(String[] args) {


        Deneme deneme = new Gson().fromJson(json, Deneme.class);


        deneme.getMatches().forEach(System.out::println);

    }

您应该更改private List<JsonObject> matches为private List<JsonObject> games.


输出是:


{"game":"Football","probability":0.74656546}

{"game":"Football","probability":0.23432424}

{"game":"Football","probability":0.2342342343}

我认为在你的情况下,在你的类中创建类Game和存储Game对象列表可能会更好Deneme,因为现在你只是存储JsonObject's.


查看完整回答
反对 回复 2022-10-12
?
互换的青春

TA贡献1797条经验 获得超6个赞

当您转换为时,您需要具有相同的名称Deneme

改变,

private List<JsonObject> matches;

至,

private List<JsonObject> games;


查看完整回答
反对 回复 2022-10-12
  • 2 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信