gpt4 book ai didi

在Spring Boot中使用JsonParser解析JSON

转载 作者:知者 更新时间:2024-03-12 08:30:18 25 4
gpt4 key购买 nike

在本教程中,我们将学习如何在Spring Boot中使用**org.springframework.boot.json.JsonParser解析JSON数据。

JSON解析的概述

在Spring Boot中解析JSON字符串的最简单方法是通过Spring Boot中原有的org.springframework.boot.json API。让我们看一个具体的例子。考虑以下REST服务:https://jsonplaceholder.typicode.com/todos/1

下面是上述JSON。

{
  "userId": 1,
  "id": 1,
  "title": "delectus aut autem",
  "completed": false
}

为了解析它,我们可以简单地使用RestTemplate,为该URL请求一个Object。JsonParser则会将JSON文档转换为一个Map(Key,Value)。

package com.example.parsejson;

import java.util.Map;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.json.JsonParser;
import org.springframework.boot.json.JsonParserFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@SpringBootApplication
public class ParsejsonApplication {

  public static void main(String[] args) {
    SpringApplication.run(ParsejsonApplication.class, args);
  }

  @Bean
  public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
    return args -> {

      String url = "https://jsonplaceholder.typicode.com/todos/1";
      RestTemplate restTemplate = new RestTemplate();
      String resp = restTemplate.getForObject(url, String.class);
      JsonParser springParser = JsonParserFactory.getJsonParser();
      Map < String, Object > map = springParser.parseMap(resp);
      String mapArray[] = new String[map.size()];
      System.out.println("Items found: " + mapArray.length);

      int i = 0;

      for (Map.Entry < String, Object > entry: map.entrySet()) {
        System.out.println(entry.getKey() + " = " + entry.getValue());
        i++;
      }

    };
  }

}

下面是运行上述代码时的输出。

Items found: 4
userId = 1
id = 1
title = delectus aut autem
completed = false

要运行上述例子,你不需要任何额外的依赖来解析JSON文件。只要包括网络启动器。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

解析一个数组JSON

一个更复杂的例子包括解析一组JSON项目。例如:https://jsonplaceholder.typicode.com/todos/

上述REST服务返回一个数组的项目。为了解析它们,我们将使用JsonParser的parseList方法,如下。

String url = "https://jsonplaceholder.typicode.com/todos/";
RestTemplate restTemplate = new RestTemplate();
String resp = restTemplate.getForObject(url, String.class);
JsonParser springParser = JsonParserFactory.getJsonParser();
List < Object > list = springParser.parseList(resp);
for (Object o: list) {
  if (o instanceof Map) {
    Map < String, Object > map = (Map < String, Object > ) o;
    System.out.println("Items found: " + map.size());
    int i = 0;
    for (Map.Entry < String, Object > entry: map.entrySet()) {
      System.out.println(entry.getKey() + " = " + entry.getValue());
      i++;
    }
  }
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com