关于fastjsonstring转json的信息

本文目录一览:

fastjson 怎样把字符串转换成json

// jackson

private static ObjectMapper om = new ObjectMapper ();

public static String objectToString (Object obj ) throws IOException{

return om.writeValueAsString (obj );

}

@Test

public void test1 () throws IOException {

MapString, Object map = new HashMapString, Object();

MapString, String map2 = new HashMapString, String此圆();

map2.put ("name", "1");

map2.put ("age"改键, "12");

map.put ("att", map2 );

ListString list = new ArrayListString();

list.add ("hi");list.add ("hello");

map.put ("list", list );

ListMapString, String confuselist = new ArrayListMapString, String();

MapString, String map3 = new HashMapString, String();

map3.put ("name", "1");

map3.put ("age", "12");

confuselist.add (map3 );

confuselist.add (map2 );

map.put ("confuselist", confuselist );

Object array = Array.newInstance (String.class, 10 );

Array.set (array, 0, "a");

Array.set (array, 1, "b");

Array.set (array, 2, "c");

map.put ("array", array );

// 使用 jackson

System.out.println (objectToString (map ));

// 使用核扒巧 fastJson

System.out.println (JSON.toJSONString (map ));

}

输出:

{"att":{"age":"12","name":"1"},"list":["hi","hello"],"confuselist":[{"age":"12","name":"1"}, {"age":"12","name":"1"}],"array":["a","b","c",null,null,null,null,null,null,null]}

{"att":{"age":"12","name":"1"},"list":["hi","hello"],"confuselist":[{"age":"12","name":"1"},{"$ref":"$.att"}],"array":["a","b","c",null,null,null,null,null,null,null]}

[img]

java 怎么将string转为json数据

string转json有三种方法:

第一种:string直接转json

String json = "{\"2\":\"efg\",\"1\":\"abc\"}"; JSONObject json_test =

JSONObject.fromObject(json); 将string的双引号转义即可,适用于字符串较短的

第二种:将string转为list后转为json

Listlist = new ArrayList(); list.add("username");

list.add("age"); list.add("sex"); JSONArray array = new JSONArray();

array.add(list);

可以使用list的族神add函数将需要的字符串拼接即可,但是这个只能使用jsonarry

第三种:将string转为map后转为json

Mapmap = new HashMap();

map.put("1", "abc");

map.put("2", "efg");

JSONArray array_test = new JSONArray();

array_test.add(map);

JSONObject jsonObject = JSONObject.fromObject(map);

这里使用map就可以将字符串转化为JSONArray或者念滚JSONObject都可以,但仔穗余是这里的键不能使用int型

java怎么把字符串转成json对象

下面以ali的fastjson为例,讲解json字桐斗符串转消尺json对象拿轮高:String jsonStr = "{\"message\" : \"success\"}";JSONObject jsonObject = JSON.parseObject(jsonStr);String message = jsonObject.getString("message");System.out.println(message);

String字符串转为json对象时顺序如何保持不变。

你好!

需要引入fastjson这个jar包,而且版本要高于1.2.3,因为Feature.OrderedField是从1.2.3开始引入的。

import java.util.HashMap;

import java.util.LinkedHashMap;

 

import com.alibaba.fastjson.JSONObject;

import com.alibaba.fastjson.parser.Feature;

 

public class Test {

    public static void main(String[] args) {

     运配亮   JSONObject json = new JSONObject();

        String jsonStr = "{\"t1\":\"\",\"t3\":\"\",\"t2\":{\"a1\":\"\",\"a3\":\"\",\"a2\"卖早:\"\"}}";

        HashMap m=  json.parseObject(jsonStr,LinkedHashMap.class,Feature.OrderedField);

        System.out.println(m.toString());

    }

}

结果:

{t1=, t3=, t2={"a1":"","a3":"","a2":""}}

希望对你有帮助旁宽!

FastJson和Json以及@ResponseBody

@Restcontroller是@Controller和@ResponseBody的结合体,将后台返回的Java对象转换为Json字符串传递给前台。它是springmvc通过配置MappingJackson2HttpMessageConverter实现的,spring默认带的转json包为jackson,因为fastJson比较快一般会引入fastjson来替换。

解决bean与json字段不一致问题,或者字段定义不符合前端所需岩租要的标准,需要使用@JsonProperty和@JSONField注解粗橡兆。

@jsonProperty是Jackson的包,@JSONproperty这个注解用于属性上面

而@jsonfield是如链fastjson的包,@JSONField这个注解可以用于get、set以及属性上面@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")是时间的格式化,可以用于get、set以及属性上面

FastJson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。FastJson的API十分简洁,FastJson重要的类为JSONObject,经常调用的方法如下:

public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray

public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject

public static final T parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean

public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray

public static final List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合

public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本

public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。

Jackson相对来说比较高效的Json类库,在项目中主要使用Jackson进行JSON和Java对象转换,Jackson ObjectMapper类是使用Jackson解析JSON最简单的方法。可以从字符串、流或文件解析JSON,并创建Java对象或对象图来表示已解析的JSON。将JSON解析为Java对象也称为从JSON反序列化Java对象

1.JAVA对象转JSON

ObjectMapper mapper = new ObjectMapper();

String bjectMapper = mapper.writeValueAsString(obj);

2.JSON转Java类[JSON反序列化]

ObjectMapper mapper = new ObjectMapper();

HashMapString, Object inMap = mapper.readValue(jsonStr, HashMap.class);

json.parseobject()的set方法设置顺序

在开发过程中遇到一个问题:服务器经过排序返回厅袜后的字符串数据在使用fastjson解析后,数据顺序发生了变化,这个问题也就是:使用fastjson解析数据后导致顺序改变或者说是如何保持String字符串转为json对象时扮尺激顺序不变

解决方法:

方法一:解析时增加参数不调整顺序(亲测使用有效)

JSONObject respondeBodyJson = JSONObject.parseObject(str, Feature.OrderedField);

方困闭法二:配置有序对象

JSONObject.parseObject(str,LinkedHashMap.class,Feature.OrderedField);

方法三:初始化json对象为有序对象

JSONObject retObj = new JSONObject(true);

方法四:使用Gson解析

JsonObject returnData = new JsonParser().parse(str).getAsJsonObject();

这样生成的json对象就与放入数据时保持一致了

注意:引入的fastjson相关的jar包版本要高于1.2.3,因为Feature.OrderedField是从1.2.3开始的

标签列表