举报投诉联系我们 手机版 热门标签 VUE中文网
您的位置:VUE中文网 > 字符串转json java JSON Java

字符串转json java JSON Java

2023-03-07 23:17 Java教程

字符串转json java JSON Java

字符串转json java

字符串转json是一种常见的数据处理方式,它可以将字符串转换成json格式,从而使得数据更加容易处理和传输。在Java中,有很多种方法可以实现字符串转json,其中最常用的是使用Jackson库。

Jackson库是一个非常流行的Java库,它可以将Java对象转换成JSON格式,也可以将JSON格式的字符串转换成Java对象。要使用Jackson库来实现字符串到JSON的转换,需要先准备好相关的依赖包。

// 在Maven项目中加入Jackson依赖包 
<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>2.9.8</version> 
</dependency> 

然后就可以使用ObjectMapper来实现字符串到JSON的转换了。ObjectMapper是Jackson库中最重要的一个工具类,它可以将Java对象和JSON格式之间进行相互映射。

 
// 创建ObjectMapper对象 
ObjectMapper mapper = new ObjectMapper(); 
// 将字符串str 转换成 JSONObject  
JSONObject jsonObj = mapper.readValue(str, JSONObject.class);  										   

此外,还可以使用Gson库来实现字符串到JSON的转换。Gson是Google开发的一个流行的Java库,它也能够将Java对象和JSON格式之间进行相互映射。要使用Gson库来实现字符串到JSON的转换,需要先准备好相关的依赖包。

 // 在Maven项目中加入Gson依赖包   <dependency>   <groupId>com.google.code.gson</groupId>   <artifactId>gson<

JSON Java

Java JSON教程 - JSON Java


JSR 353解决了用于JSON处理的标准Java API,并作为JEE 7的一部分提供。

参考实现jsonp可以从https://jsonp.java.net/download.html下载。

要使用JSON Processing API编译应用程序,请在maven项目中声明对json-api的依赖关系。

api依赖不允许您运行应用程序。

<dependency>
    <groupId>javax.json</groupId>
    <artifactId>javax.json-api</artifactId>
    <version>1.0</version>
</dependency>

对于非Maven项目,JSON处理API jar(http://search.maven.org/remotecontent?filepath=javax/json/javax.json-api/1.0/javax.json-api-1.0.jar)可以是下载并包含在用于编译应用程序的类路径中。

要使用JSON Processing API运行应用程序,请在maven项目中声明对json-api实现的依赖。

<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.json</artifactId>
    <version>1.0.4</version>
</dependency>

对于非Maven项目,可以通过http://search.maven.org/remotecontent?filepath=org/glassfish/javax.json/1.0.4/ 下载JSON Processing RI jar并将其包含在类路径中以运行应用程序javax.json-1.0.4.jar。

GlassFish 4.0已经包括JSON实现。对于Web应用程序,我们不需要在战争中包含实现jar。

在开发应用程序期间声明具有提供的作用域的json-api依赖关系。

<dependency>
    <groupId>javax.json</groupId>
    <artifactId>javax.json-api</artifactId>
    <scope>provided</scope>
    <version>1.0</version>
</dependency>

例1

以下代码显示了如何使用JsonReader将JSON数据读取到JSON对象模型。

import java.io.StringReader;
import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonObject;
import javax.json.JsonReader;
import javax.json.JsonValue;
 
public class Main {
    public static void main(String[] args) {
        String personJSONData = 
            "  {" +
            "   "name": "Jack", " +
            "   "age" : 13, " +
            "   "isMarried" : false, " +
            "   "address": { " +
            "     "street": "#1234, Main Street", " +
            "     "zipCode": "123456" " +
            "   }, " +
            "   "phoneNumbers": ["011-111-1111", "11-111-1111"] " +
            " }";
         
        JsonReader reader = Json.createReader(new StringReader(personJSONData));
         
        JsonObject personObject = reader.readObject();
         
        reader.close();
         
        System.out.println("Name   : " + personObject.getString("name"));
        System.out.println("Age    : " + personObject.getInt("age"));
        System.out.println("Married: " + personObject.getBoolean("isMarried"));

        JsonObject addressObject = personObject.getJsonObject("address");
        System.out.println("Address: ");
        System.out.println(addressObject.getString("street"));
        System.out.println(addressObject.getString("zipCode"));
         
        System.out.println("Phone  : ");
         JsonArray phoneNumbersArray = personObject.getJsonArray("phoneNumbers");
        for (JsonValue jsonValue : phoneNumbersArray) {
            System.out.println(jsonValue.toString());
        }
    }
}

读取数组

JsonReader reader = Json.createReader(new StringReader(personJSONData));
JsonArray personArray = reader.readArray();
reader.close();


for (JsonValue jsonVal : personArray) {
    System.out.println(personObj.getValueType() + " - " 
    + ((JsonObject) personObj).getString("name"));
}

例2

以下代码显示了如何使用JsonObjectBuilder和JsonArrayBuilder构建JSON对象

import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
 
public class Main {
     
    public static void main(String[] args) {
        JsonObject personObject = Json.createObjectBuilder()
                .add("name", "John")
                .add("age", 13)
                .add("isMarried", false)
                .add("address", 
                     Json.createObjectBuilder().add("street", "Main Street")
                                               .add("city", "New York")
                                               .add("zipCode", "11111")
                                               .build()
                    )
                .add("phoneNumber", 
                     Json.createArrayBuilder().add("00-000-0000")
                                              .add("11-111-1111")
                                              .add("11-111-1112")
                                              .build()
                    )
                .build();
         
        System.out.println("Object: " + personObject);
    }
}

例3

以下代码显示了如何使用JsonWriter序列化JSON对象。

import java.io.StringWriter;
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
import javax.json.JsonWriter;
 
public class Main {
     
    public static void main(String[] args) {
        JsonObject personObject = Json.createObjectBuilder()
                .add("name", "Jack")
                .add("age", 13)
                .add("isMarried", false)
                .add("address", 
                     Json.createObjectBuilder().add("street", "Main Street")
                                               .add("city", "New York")
                                               .add("zipCode", "11111")
                                               .build()
                    )
                .add("phoneNumber", 
                     Json.createArrayBuilder().add("00-000-0000")
                                              .add("11-111-1111")
                                              .add("11-111-1112")
                                              .build()
                    )
                .build();
         
        StringWriter stringWriter = new StringWriter();
        JsonWriter writer = Json.createWriter(stringWriter);
        writer.writeObject(personObject);
        writer.close();
        System.out.println(stringWriter.getBuffer().toString());
    }
 
}
阅读全文
以上是VUE中文网为你收集整理的字符串转json java JSON Java全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 VUE中文网 vue88.com 版权所有 联系我们