【问题标题】:How to read Json using Gson in java [closed]如何在java中使用Gson读取Json [关闭]
【发布时间】:2016-04-04 14:23:26
【问题描述】:

我需要使用 Java 中的 Gson 库读取 Json 文件。首先我不明白Json文件是什么,我有以下内容:(抱歉缺少空格,就是这样粘贴的)

{
"initialStorage": [
{shoeType: "red-boots", amount: 10},
{shoeType: "green-flip-flops", amount: 7}
],
services: {
time: {
speed: 1000,
duration: 24
},
manager: {
discountSchedule: [
{shoeType: "red-boots", amount: 1, tick: 3},
{shoeType: "green-flip-flops", amount: 3, tick:10}
]
},
factories: 3,
sellers: 2,
customers: [
{
name: "Bruria",
wishList: ["green-flip-flops"],
purchaseSchedule: [
{shoeType: "red-boots", tick: 3}
]
},
{
name: "Shraga",
wishList: [],
purchaseSchedule: [
{shoeType: "green-flip-flops", tick: 12}
]
}
]
}
}
  1. 我只是把它放在java中作为..String json =“-在这里粘贴它-”吗?什么是“Json”文件,它是我必须读取为 nameofile.json 的某种文件吗?
  2. 如何使用 Gson 读取它?我从 youtube 视频中的解释中不太明白。

以下链接以更舒适的方式显示给定的 Json 输入: http://i.stack.imgur.com/r0cTs.png

【问题讨论】:

  • 在我看来杰克逊是一个更好的选择...
  • 看看 GSON 手册,很多例子。
  • “首先我不明白什么是 Json 文件”,然后阅读 JSON!然后,阅读 GSON 手册:github.com/google/gson/blob/master/UserGuide.md
  • GSON 是 Java 库,可以将 JSON 转换为 Java 对象,反之亦然。几周前我使用 GSON 解析了一些 JSON 文件。首先,我有疑问。你想从那个 JSON 文件中得到什么名字?

标签: java json parsing gson


【解决方案1】:

JSON 是 JavaScript Object Notation 的缩写,是一种以有组织、易于访问的方式存储信息的方式。简而言之,它为我们提供了一个人类可读的数据集合,我们可以以一种非常合乎逻辑的方式访问这些数据。

举个简单的例子,关于我的信息可以用 JSON 写成如下:

{
    "age" : "24",
    "hometown" : "Missoula, MT",
    "gender" : "male"
}

要在java中使用Gson读取Json文件,你需要使用Gson lib。

Gson 是一个 Java 库,可用于将 Java 对象转换为其 JSON 表示形式。它还可用于将 JSON 字符串转换为等效的 Java 对象。 Gson 可以处理任意 Java 对象,包括您没有源代码的预先存在的对象。

演示:从“file.json”中读取数据,转换回对象并显示出来。

package com.mkyong.core;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import com.google.gson.Gson;

public class GsonExample {
    public static void main(String[] args) {

    Gson gson = new Gson();

    try {

        BufferedReader br = new BufferedReader(
            new FileReader("c:\\file.json"));

        //convert the json string back to object
        DataObject obj = gson.fromJson(br, DataObject.class);

        System.out.println(obj);

    } catch (IOException e) {
        e.printStackTrace();
    }

    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多