当前位置: 首页 > 知识库问答 >
问题:

获取JSON值并存储它

孟正志
2023-03-14

这是我的JSON文件,我需要从key:value pair中获取值,然后将这些值存储到ArrayList rating中进行排序,但使用这段代码,我只得到“reviews”作为键...你能帮我吗?我知道要得到所有的关键:值对,但我只需要一对,并从中取值。我应该为每个人使用迭代器吗?你能给我一些方向和例子吗

{
"reviews": [
  {
    "id": 2097047,
    "reviewId": "93f131be27dc1122bb7ef0048ad10e4f",
    "reviewFullText": "5 star review",
    "reviewText": "5 star review",
    "numLikes": 0,
    "numComments": 0,
    "numShares": 0,
    "rating": 5,
    "reviewCreatedOn": "2 months ago",
    "reviewCreatedOnDate": "2021-01-25T13:00:35+00:00",
    "reviewCreatedOnTime": 1611579635,
    "reviewerId": null,
    "reviewerUrl": null,
    "reviewerName": "Reviewer #20",
    "reviewerEmail": null,
    "sourceType": "custom",
    "isVerified": false,
    "source": "custom",
    "sourceName": "1-20 Reviews",
    "sourceId": "890cdd7974cdf8aabe6e9051f5a87303bdb933ae",
    "tags": [],
    "href": null,
    "logoHref": null,
    "photos": []
  },
  {
    "id": 2097046,
    "reviewId": "6e7bd4c71a56885ef583bd79186af689",
    "reviewFullText": "4 star review",
    "reviewText": "4 star review",
    "numLikes": 0,
    "numComments": 0,
    "numShares": 0,
    "rating": 4,
    "reviewCreatedOn": "2 months ago",
    "reviewCreatedOnDate": "2021-01-25T13:00:21+00:00",
    "reviewCreatedOnTime": 1611579621,
    "reviewerId": null,
    "reviewerUrl": null,
    "reviewerName": "Reviewer #19",
    "reviewerEmail": null,
    "sourceType": "custom",
    "isVerified": false,
    "source": "custom",
    "sourceName": "1-20 Reviews",
    "sourceId": "890cdd7974cdf8aabe6e9051f5a87303bdb933ae",
    "tags": [],
    "href": null,
    "logoHref": null,
    "photos": []
  },
public class GetPair {

    public static void main(String[] args) throws FileNotFoundException, IOException, ParseException {
        ArrayList<Object> rating = new ArrayList<>();
        Object obj = new JSONParser()
                .parse(new FileReader("C:\\Users\\User\\eclipse-workspace\\Task\\files\\reviews.json"));
        JSONObject jo = (JSONObject) obj;

        for (Object key : jo.keySet()) {

            String keys = (String) key;
            Object keyObj = jo.get(keys);

            if (!(keyObj instanceof JSONObject)) {

                // System.out.println(keys + " " + keyObj);
            }
            rating.add(keys);
            System.out.println(rating);
        }

    }

}

共有1个答案

谭玄天
2023-03-14

主对象只有一个键:“reviews”。它的值是一个数组。如果要在ArrayList中添加数组的每个元素,可以执行如下操作:

    JSONObject jo = (JSONObject) obj;
    JSONArray array = (JSONArray)jo.get("reviews");

    for (int ix = 0; ix < array.size(); ++ix) {
        JSONObject elm = (JSONObject)array.get(ix);
        rating.add(elm);
        System.out.println(rating);
    }
 类似资料:
  • 我是新的反应本机,我试图简单地迭代通过一个示例json文件,但我收到的错误未定义不是一个函数(评估'this.state.results.map') 我最初将状态设置为对象,因此不确定为什么会收到此错误。 这里是JS: 因此,我将renderJSON()编辑为,并删除了responseData的大括号,正如您所说,因为它已经是一个对象: 我添加了一个控制台日志,以查看是否可以输出一些数据,并且可以

  • 问题内容: 我有一个json文本,我想获取作者姓名和描述标签的值。不需要其他字段,例如url和urltoimage等。当我运行以下代码时,不提供任何字符串值。我认为这里有些错误。 怎么得到这个?下面是我的代码,它根本不起作用 上面的代码返回对象未设置为实例错误! 问题答案: 假设您希望反序列化为具体的类(按照问题中第二种尝试的方法),那么您需要一个包装器类来容纳整个对象,然后对此进行反序列化。 目

  • 问题内容: 与PHP中的mysql中的存储过程无关,文档完全缺乏。我目前有一个通过PHP调用的存储过程,如何获取out参数的值? 问题答案: 它看起来像在这篇文章中回答: http://forums.mysql.com/read.php?52,198596,198717#msg-198717 使用mysqli PHP API: 假设sproc myproc(IN i int,OUT j int):

  • 问题内容: 可以说这是我的 我需要知道该对象中是否存在“视频”,如果存在,则需要获取此键的值。我尝试了以下操作,但是我无法获得此键的价值。 问题答案: 使用下面的代码来查找密钥是否存在。方法用于查找中的键。 如果您正在使用方法获取String值,则不必担心键中是否存在键。

  • 问题内容: 假设我有这个JSON: 我正在尝试通过PHP: 我正在尝试获取成就的第一个“ id” 。 我该如何解决? 问题答案: 当您设置的第二个参数来,它会返回一个数组。 返回一个数组。

  • 我有一个名为AnimalsData的文件,它有一个由数组组成的对象。数组由一个对象和另一个数组组成。它看起来像这样: 我的HTML文件如下所示: 我正试图获取的值的类名对象从动画类数组。我一直在使用以下两个stackoverflow页面作为指南: 访问JSON数组中的对象和访问/处理(嵌套)对象、数组或JSON 我有另一个javascript文件,其中包含以下内容: 编辑我将for in循环中的"