从 Json 格式的字符串中提取子字符串 Java

Extracting substring from a String in Json Format in Java

我有这个字符串

String str= " {\"name\":\"xyz\",\"id\":\"123\" } ";

我想从给定的字符串中提取 xyz,有人可以在 Java 中提出一个有效的方法吗?

第 1 步:创建一些 DTO class,如下所示

public class MyDTO{
  private String name;
  private String id;

  // Create setters and getters
}

Step2: 将上面的字符串转换为 DTO(pojo class) class 通过使用如下的 objectmapper

ObjectMapper objectMapper = new ObjectMapper();
String str= "{\"name\":\"xyz\",\"id\":\"123\"}";
MyDTO dto = objectMapper.readValue(str, MyDTO.class);

第 3 步:转换为 DTO 对象后,您可以将其与 dto 对象一起使用,如下所示。

System.out.println(dto.getName());

注意:如果您的 pom 文件中没有 fasterxml 依赖项,请将以下依赖项添加到您的 pom 文件中。

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.12.3</version>
</dependency>

编码愉快..!

如果您不想将整个 JSON 解析为一个对象,您可以使用 JsonPath

String str = " {\"name\":\"xyz\",\"id\":\"123\" } ";
String name = JsonPath.read(str,"$.name");
System.out.println(name);

将以下依赖项添加到您的 pom.xml

<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path</artifactId>
    <version>2.5.0</version>
</dependency>