字符串转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()); } }
Java compareToIgnoreCase() 方法JavaString类compareToIgnoreCase() 方法用于按字典顺序比较两个字符串,不考虑大小写。语法int...
Java equalsIgnoreCase() 方法JavaString类equalsIgnoreCase() 方法用于将字符串与指定的对象比较,不考虑大小写。语法public bo...
Java数据类型教程 -Java字符串搜索我们可以使用indexOf()和lastIndexOf()方法获取另一个字符串中的字符或字符串的索引。例如publ...
JSF教程 -JSF Ajax Hello World示例AJAX代表Asynchronous JavaScript And Xml。这是一种使用JavaScript的HTTPXMLObject发送数据...
JPA教程 -JPA表唯一约束示例我们可以用@Table注释添加表约束。下表为名称列上的Person表添加了唯一约束。@Entity@Table(uniqueCo...