最近写代码遇到一个事每次把日志的字符串拿来用,都需要手工变成json,自己加引号,很烦,自己整了个方法,本来准备自己写,但是针对简单字符串可以,复杂的没搞成。
贴上代码哈
pom 文件
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>1.0.6</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
</dependency>
代码
import java.util.Map;
import org.json.JSONObject;
import com.google.gson.Gson;
public class Test {
public static void main(String[] args) {
String str = "{sys=CETS,fcnd=1,a={sys=CSER,fcd=77777777}}";
Gson gson = new Gson();
Map<String,Object> map = gson.fromJson(str, Map.class);
System.out.println(map);
System.out.println(mapToJson(map));
}
public static JSONObject mapToJson(Map<String,Object> map){
JSONObject json = new JSONObject();
json = new JSONObject(map);
return json;
}
}
结果运行
gson.fromJson(str, Map.class); 这个方法应该就是把字符串转换成map
但是转换成的map 里面 居然有个 7.7777777E7 这个是怎么回事?
本来准备自己写个方法用字符串截取 然后转成map,同事说不用造轮子,不过发现轮子不好用哈。第一次写博客,写的low不要喷,我会坚持写。