您的位置 首页 java

Java中使用JSON的基本实例

以下是在java中使用 Json 的一种方式

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

参考实现jsonp可以从下载。

要使用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(可以是下载并包含在用于编译应用程序的类路径中。

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

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

对于非Maven项目,可以通过 下载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>
 <vers io n>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

以下代码显示了如何使用JsonObject build er和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());
 }
 
}
 

文章来源:智云一二三科技

文章标题:Java中使用JSON的基本实例

文章地址:https://www.zhihuclub.com/198782.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图