提交 c01aa869 编写于 作者: W wizardforcel

2020-06-14 11:10:55

上级 5fbb07fd
......@@ -40,7 +40,7 @@ Gson 的最佳**好处是**,在我们为某些成员字段进行非常特定
学习使用 Google Gson 库序列化`HashMap`。 还应学习使用 Gson 将 JSON 字符串反序列化为包含自定义对象的`HashMap`,以便将字段值复制到适当的通用类型中。
## 2.提前用法
## 2.高级用法
第一部分中的基本示例足以应付默认用例。 我们可能需要自定义 Gson 的行为以支持特定要求。 了解如何执行此操作。
......
# GSON – 序列化和反序列化 JSON 为集
# GSON – 序列化和反序列化 JSON 为集
> 原文: [https://howtodoinjava.com/gson/gson-serialize-deserialize-set/](https://howtodoinjava.com/gson/gson-serialize-deserialize-set/)
了解如何在 Java 中使用 Google GSON 库反序列化或**解析 JSON 为集合**(例如[`HashSet`](https://howtodoinjava.com/java/collections/java-hashset/))。 另外,学习**序列化集合为 JSON**
了解如何在 Java 中使用 Google GSON 库反序列化或**解析 JSON 为集**(例如[`HashSet`](https://howtodoinjava.com/java/collections/java-hashset/))。 另外,学习**序列化集为 JSON**
> 值得一提的是,仅当`Set`是根元素时,我们才会做出额外的努力。 Gson 作为成员(在根下)可以很好地处理这些集。
## 1.序列化集为 JSON
## 1.序列化集为 JSON
Java 程序使用`Gson.toJson()`方法将`HashSet`序列化为 JSON。
......@@ -31,7 +31,7 @@ System.out.println(jsonString);
```
## 2.反序列化 JSON 为集
## 2.反序列化 JSON 为集
Java 程序,使用`Gson.fromJson()`方法和[`TypeToken`](https://static.javadoc.io/com.google.code.gson/gson/2.8.5/com/google/gson/reflect/TypeToken.html)将 JSON 反序列化为`HashSet`
......@@ -61,7 +61,7 @@ System.out.println(userSet);
```
向我提供有关**在 Java 中解析和反序列化 json 为集**的问题。
向我提供有关**在 Java 中解析和反序列化 json 为集**的问题。
学习愉快!
......
......@@ -4,9 +4,9 @@
[Gson](https://howtodoinjava.com/learningpaths/gson/) 允许我们从 Java 类中排除或忽略字段,这些字段不希望包含在序列化和反序列化中。 Gson 支持许多内置机制,用于排除顶级类,字段和字段类型。
## 1\. Gson `@Expose`批注
## 1\. Gson `@Expose`注解
[`@Expose`](https://static.javadoc.io/com.google.code.gson/gson/2.8.5/com/google/gson/annotations/Expose.html)标记要排除的对象的某些字段,默认为*标记为*,以考虑将序列化和反序列化为 JSON。 这意味着 Gson 将排除类中没有用`@Expose`批注标记的所有字段。
[`@Expose`](https://static.javadoc.io/com.google.code.gson/gson/2.8.5/com/google/gson/annotations/Expose.html)标记要排除的对象的某些字段,默认为*标记为*,以考虑将序列化和反序列化为 JSON。 这意味着 Gson 将排除类中没有用`@Expose`注解标记的所有字段。
`@Expose`注释在一种编程风格中很有用,在该编程风格中,您要显式指定应考虑进行序列化或反序列化的所有字段。
......@@ -14,8 +14,8 @@
`@Expose`是可选的,并提供两个配置参数:
* `serialize` – 如果*为真*,则在序列化时会在 JSON 中写出带有此批注的字段。
* `deserialize` – 如果*为真*,则从 JSON 反序列化带有此批注的字段。
* `serialize` – 如果*为真*,则在序列化时会在 JSON 中写出带有此注解的字段。
* `deserialize` – 如果*为真*,则从 JSON 反序列化带有此注解的字段。
```java
@Expose(serialize = false)
......
......@@ -377,7 +377,7 @@ Gson gson = gsonBuilder.create();
```
#### 8.1 `Employee.java`中以各种版本添加的字段
#### 8.1 `Employee.java`中以各种版本添加的字段
```java
public class Employee
......
......@@ -16,7 +16,7 @@ Table of Contents
6\. JMS Message Components
```
## 1\. JMS 教程 - 需要 JMS
## 1\. JMS 教程 - JMS 的必要性
在 Java 中,如果一个人想要以一种方式将消息从一个应用发送到另一个应用,使得这两个应用彼此之间一无所知,那么即使它们可以完全不依赖地部署在单独的大陆上。 例如,一个应用 A 在印度运行,另一个应用在美国运行,而 B 则有兴趣从 A 获得一些更新/消息 - 每当 A 上发生独特的事情。可能有 N 个这样的应用对 来自 A 的此类更新。
......@@ -72,7 +72,7 @@ Table of Contents
阅读更多:[HornetQ 基本示例](//howtodoinjava.com/hornetq/basic-jms-messaging-example-using-hornetq-stand-alone-server/)
## 4.消息消耗
## 4.消息使用
在 JMS 中,可以通过两种方式使用消息:
......@@ -101,7 +101,7 @@ JMS API 编程模型
#### 5.1 JMS 管理对象
#### 5.1 JMS 管理对象
JMS 应用提供两种类型的管理对象:
......@@ -157,7 +157,7 @@ Connection connection = connectionFactory.createConnection();
connection.close();
```
#### 5.5 JMS 会
#### 5.5 JMS 会
[会话](https://docs.oracle.com/javaee/7/api/javax/jms/Session.html)是用于生成和使用消息的单线程上下文。 这些会话用于创建以下内容:
......
......@@ -93,7 +93,7 @@ public class Employee implements Serializable {
```
#### 2.3 不使用`@XmlElementWrapper`(未包装的集合)
#### 2.3 不使用`@XmlElementWrapper`(未包装的集合)
```java
@XmlRootElement(name = "employee")
......
# 使用 Moxy 和 Jaxb 将 JSON 转换为 Java 对象示例
# 使用 Moxy 和 Jaxb 将 JSON 转换为 Java 对象示例
> 原文: [https://howtodoinjava.com/jaxb/convert-json-to-java-object-moxy/](https://howtodoinjava.com/jaxb/convert-json-to-java-object-moxy/)
......
# JAXB 将 Java 对象写入 XML 示例
# JAXB 将 Java 对象写入 XML 示例
> 原文: [https://howtodoinjava.com/jaxb/write-object-to-xml/](https://howtodoinjava.com/jaxb/write-object-to-xml/)
......@@ -147,7 +147,7 @@ public class JaxbExample
```
## 3)读取 XML 示例
## 3)读取 XML 示例
如果要再次从文件读取 XML 到 Java 对象,请使用此方法。
......
# JAXB 将对象转换为 JSON 示例
# JAXB 将对象转换为 JSON 示例
> 原文: [https://howtodoinjava.com/jaxb/convert-object-to-json-moxy/](https://howtodoinjava.com/jaxb/convert-object-to-json-moxy/)
......
......@@ -70,7 +70,7 @@ public class EmployeeMap {
```
## 3)编组映射到 XML 示例
## 3)编组映射到 XML 示例
**将 Java 映射编组或转换为 xml** 表示形式的 Java 示例。 在下面的示例代码中,我首先在控制台中编写员工映射,然后在文件中编写。
......@@ -137,7 +137,7 @@ Output:
```
## 4)解组 XML 到映射示例
## 4)解组 XML 到映射示例
Java 示例**将 xml 转换为 Java 映射**对象。 让我们看一下`EmployeeMap`类的示例。
......
......@@ -73,7 +73,7 @@ public class Employees
```
## 3)将编组列表转换为 XML 示例
## 3)将列表编组为 XML 的示例
编组是“将 Java 对象转换为 xml 表示形式”。 在下面的示例代码中,我首先在控制台中写入`employees`列表,然后在文件中写入。
......
......@@ -6,7 +6,7 @@
可能还有许多其他情况,但是想法是*我们无法使用 JAXB 注解*修改模型类。 这可能是**将 Java 对象转换为 xml 而没有 jaxb** 的示例。
## 1.没有`@XmlRootElement`进行编组时出现问题
## 1.不带`@XmlRootElement`的编组问题
在这种情况下,如果我们尝试将[将 Java 对象直接编组为 XML](https://howtodoinjava.com/jaxb/write-object-to-xml/),则将得到类似的错误。
......@@ -69,7 +69,7 @@ public class Employee implements Serializable {
```
## 2.没有`@XmlRootElement`注解的对象的解决方案
## 2.不带`@XmlRootElement`注解的编组的解决方案
缺少`@XmlRootElement`注解时,JAXB 无法为`Employee`对象构建[`JAXBElement`](https://docs.oracle.com/javaee/7/api/javax/xml/bind/JAXBElement.html)实例。 这就是我们必须帮助 JAXB 手动构建它的地方。
......@@ -93,7 +93,7 @@ JAXBElement<Employee> jaxbElement
```
#### 2.2 没有`@XmlRootElement`的 JAXB 编组示例
#### 2.2 不带`@XmlRootElement`的 JAXB 编组示例
现在,让我们看看该编组代码的工作原理。
......
# 没有 jaxb 注解的解组
# 不带 jaxb 注解的解组
> 原文: [https://howtodoinjava.com/jaxb/unmarshal-without-xmlrootelement/](https://howtodoinjava.com/jaxb/unmarshal-without-xmlrootelement/)
很多时候,您将需要**解组不具有诸如`@XmlRootElement`之类的 JAXB 注释**的 Java 对象,并且不允许您对源代码进行任何更改。 当您使用旧代码或某些您没有源代码的客户端 jar 时,可能会发生这种情况。
## 1.在没有 jaxb 注释的情况下解组时的问题
## 1.不带 jaxb 注释的解组问题
在这种情况下,如果您尝试直接将[ Java 对象解组为 XML](https://howtodoinjava.com/jaxb/read-xml-to-java-object/) ,则将出现类似的错误。
......
......@@ -27,7 +27,7 @@ Convert JSON to Java object
您可以从 [**maven 站点**](https://mvnrepository.com/artifact/com.fasterxml.jackson.core)找到可下载的 jar 文件。
## 2.将 Java 对象转换为 JSON 示例
## 2.将 Java 对象转换为 JSON 示例
在简单的 pojo 对象之间进行转换时,Jackson 非常直接。 通常只涉及两个步骤,
......@@ -46,7 +46,7 @@ String json = mapper.writeValueAsString(emp);
```
#### 2.1 Java 程序将 Java 对象转换为 JSON
#### 2.1 将 Java 对象转换为 JSON 的 Java 程序
```java
package com.howtodoinjava.jackson2.example;
......@@ -152,7 +152,7 @@ Employee emp = mapper.readValue(json, Employee.class);
我们可以在 Java 中读取 json 文件,并将其传递给 jackson 库。
#### 3.1 Java 程序将 JSON 转换为 Java 对象
#### 3.1 将 JSON 转换为 Java 对象的 Java 程序
```java
package com.howtodoinjava.jackson2.example;
......
......@@ -68,9 +68,9 @@ import java.io.*;
```
#### 1.2 创建 DocumentBuilder
#### 1.2 创建`DocumentBuilder`
下一步是创建 DocumentBuilder 对象。
下一步是创建`DocumentBuilder`对象。
```java
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册