将对象转成你想要的对象,除了JSONObject.parseObject外,可以用ObjectMapper
1、添加jackson库
如果是maven工程,需要在pom.xml中添加jackson的依赖:
-
<dependency>
-
<groupId>com.fasterxml.jackson.core</groupId>
-
<artifactId>jackson-databind</artifactId>
-
<version>2.8.3</version>
-
</dependency>
用到jackson的类中需要引入:
-
import com.fasterxml.jackson.databind.ObjectMapper;
-
import com.fasterxml.jackson.databind.DeserializationFeature;
2、json转object
比如本例中是YourJson(json类型字符串)需要转化为YourClass类(自定义的类)的实例:
-
ObjectMapper objectMapper = new ObjectMapper();
-
YourClass class = objectMapper.readValue(YourJson, YourClass.class);
如果json中有新增的字段并且是YourClass类中不存在的,则会转换错误
1)需要加上如下语句:
这种方法的好处是不用改变要转化的类,即本例的YourClass。(如果YourClass不是你维护的,或者不可修改的,可以用这个方法)
-
ObjectMapper objectMapper = new ObjectMapper();
-
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-
YourClass class = objectMapper.readValue(YourJson.toString(), YourClass.class);
2)jackson库还提供了注解方法,用在class级别上:
-
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-
@JsonIgnoreProperties(ignoreUnknown = true)
-
public class YourClass {
-
...
-
}
3、object转json
本例中是YourClass对象需要转化为json:
-
import com.fasterxml.jackson.databind.ObjectMapper;
-
-
ObjectMapper objectMapper = new ObjectMapper();
-
YourClass yourClass = new YourClass();
-
String json = objectMapper.writeValueAsString(yourClass);
转自:
https://blog.csdn.net/u013174217/article/details/53924436
将对象转成你想要的对象,除了JSONObject.parseObject外,可以用ObjectMapper1、添加jackson库如果是maven工程,需要在pom.xml中添加jackson的依赖: &lt;dependency&gt; &lt;groupId&gt;com.fasterxml.jackson.core&lt;/groupId&gt; &lt;...
import com.fasterxml.jackson.core.
Json
ProcessingException;
import com.fasterxml.jackson.databind.
ObjectMapper
;
import com.jt.pojo.Item;
import com.jt.pojo.ItemDesc;
import com.sun.corba.se.spi.ior.IORTemplate;
* 该工具类,主要的功能实现
对象
与
JSON
串的互相转化.
* 1.
对象
转化为J
1. 前言
在实际开发过程中,会经常接收
Json
字符串并转化为相应
对象
,而这个转化过程中若报错,无非提示,没有set方法,或者没有get方法,或者静态内部类没有默认构造函数,静态内部类没有带全部参数构造函数,无法转化多了某某field属性等等。
因此,在大多数开发的过程中,我们自然会在实体类
对象
上,一股脑加上 @Data,@NoArgsConstructor,@AllArgsConstru
有些时候,我们要处理的
json
,是不可以直接
转换
为javaBean处理滴,比如一些中文字段名,总不能在代码
对象
里给属性都定义成中文,,,,那怎么搞,来下边这些东西帮你搞。我遇到的场景就是要把,hbase中存储的
json
文本拿出来,
转换
存至数据库表(mysql)中
而hbase中存储的
json
文本都是中英混合的字段名,so…
Json
Node 的 方法可以获取所有的 key值
根据key获取值,value可能为子节点
Json
Node 或 String
如果是一个
Json
Node数组,处理使用
Json
No
参考博文:
ObjectMapper
的一些坑
1.
ObjectMapper
类的介绍:
ObjectMapper
类是Jackson库的主要类。它提供一些功能将
转换
成Java
对象
匹配
JSON
结构,反之亦然。它使用
Json
Parser和
Json
Generator的实例实现
JSON
实际的读/写。
1.1构造函数:
1.2常用的序列化设置属性:
private static
ObjectMapper
map............
ObjectMapper
的使用
这个类是jackson提供的,主要是用来把
对象
转换
成为一个
json
字符串返回到前端,现在几乎所有数据交换都是以
json
来传输的。它使用
Json
Parser和
Json
Generator的实例实现
JSON
实际的读/写。当然这只是其中的一种 后续我还会将介绍比较火的Gson。
首先在pom.xml文件中,加入依赖:
<dependency>
Java系列之:
ObjectMapper
实现
对象
转化为
Json
、集合转化为
Json
、
Json
转化为
对象
、
Json
转化为
Json
Node、
Json
Node转化为
Json
字符串一、创建类Dataset二、生成
对象
插入数据
一、创建类Dataset
import lombok.Data;
@Data
public class Dataset {
* 数据表全称
private String tableName;
* 数据库名称
我这段代码怎么写才能对:
ObjectMapper
mapper = new
ObjectMapper
(); Map<String, Object> map = mapper.readValue(stream, Map.class); Properties props = new Properties(); for (Map.Entry<String, Object> entry : map.entrySet()) { props.put(entry.getKey(), entry.getValue().toString()); } return new PropertyResourceBundle(props);
```java
public static PropertyResourceBundle convertToResourceBundle(InputStream stream) throws IOException {
ObjectMapper
mapper = new
ObjectMapper
();
Map<String, Object> map = mapper.readValue(stream, Map.class);
Properties props = new Properties();
for (Map.Entry<String, Object> entry : map.entrySet()) {
props.put(entry.getKey(), entry.getValue().toString());
return new PropertyResourceBundle(props);
这个方法接收一个 InputStream 参数,读取其中的
JSON
数据,并将其
转换
为 PropertyResourceBundle
对象
。在方法内部,首先创建一个
ObjectMapper
对象
,然后使用它的 readValue 方法将 InputStream 中的
JSON
数据
转换
为 Map
对象
。接着,将 Map
对象
中的每个键值对
转换
为 Properties
对象
中的键值对。最后,将 Properties
对象
转换
为 PropertyResourceBundle
对象
并返回。
你可以在其他地方调用这个方法,从而将任何一个 InputStream 中的
JSON
数据
转换
为 PropertyResourceBundle
对象
。