精华内容
下载资源
问答
  • 今天在做一个校验功能,为了通用,在页面上使用json字符串配置要校验...转换方法: /***json字符串转map集合*@authorducc*@paramjsonStrjson字符串*@parammap接收map*@return*/publicMapjson2Map(StringjsonSt...

    今天在做一个校验的功能,为了通用,在页面上使用json字符串配置要校验的所有项和表.在后台转map的时候一层一层的转太麻烦了,就写了个通用 方法来转.

    转换方法: /**

    * json字符串转map集合

    * @author ducc

    * @param jsonStr json字符串

    * @param map 接收的map

    * @return

    */

    public Map json2Map(String jsonStr,Map map){

    JSONObject jsonObject = JSONObject.fromObject(jsonStr);

    map = JSONObject.fromObject(jsonObject);

    //递归map的value,如果

    for(Entry entry:map.entrySet()){

    json2map1(entry, map);

    }

    return map;

    }

    /**

    * json转map,递归调用的方法

    * @author ducc

    * @param entry

    * @param map

    * @return

    */

    public Map json2map1(Entry entry,Map map){

    if(entry.getValue() instanceof Map){

    JSONObject jsonObject= JSONObject.fromObject(entry.getValue());

    Map map1 = JSONObject.fromObject(jsonObject);

    for(Entry entry1:map1.entrySet()){

    map1=json2map1(entry1, map1);

    map.put(entry.getKey(), map1);

    }

    }

    return map;

    }

    测试方法: @Test

    public void aa(){

    String jsonStr="{'qyyzcry':{'TABLES':'PROCESS_RYJBXX r,PRCOESS_RYKZXXB k,PROCESS_QYRYGXB g','TABLESLINK':'r.ID=k.RYID and g.RYID=r.ID and g.rylx=\"QYRYFXB009\"','PROCESS_RYJBXX':'r.ZWXM,r.ZGXL,r.ZJLX,r.ZJHM','PRCOESS_RYKZXXB':'k.ZW,k.ZC,k.CSZY','testa':{'testb':{'testc':'testctest'},'testb1':'testb1text'}}}";

    Map map =new HashMap(); //JSONObject.fromObject(jsonObject);

    map=json2Map(jsonStr, map);

    for(Entry entry:map.entrySet()){

    System.err.println("key: "+entry.getKey()+"---value:"+entry.getValue());

    Map m=(Map) entry.getValue();

    for(Entry e:m.entrySet()){

    System.err.println("key: "+e.getKey()+"---value:"+e.getValue());

    if(e.getValue() instanceof Map){

    Map objmap=(Map) e.getValue();

    for(Entry en:objmap.entrySet()){

    System.err.println("key: "+en.getKey()+"---value:"+en.getValue());

    }

    }

    }

    }

    }

    输出结果:

    key: qyyzcry---value:{"TABLES":"PROCESS_RYJBXX r,PRCOESS_RYKZXXB k,PROCESS_QYRYGXB g","TABLESLINK":"r.ID=k.RYID and g.RYID=r.RYID and g.rylx=\"QYRYFXB009\"","PROCESS_RYJBXX":"r.ZWXM,r.ZGXL,r.ZJLX,r.ZJHM","PRCOESS_RYKZXXB":"k.ZW,k.ZC,k.CSZY","testa":{"testb":{"testc":"testctest"},"testb1":"testb1text"}}

    key: TABLES---value:PROCESS_RYJBXX r,PRCOESS_RYKZXXB k,PROCESS_QYRYGXB g

    key: TABLESLINK---value:r.ID=k.RYID and g.RYID=r.RYID and g.rylx="QYRYFXB009"

    key: PROCESS_RYJBXX---value:r.ZWXM,r.ZGXL,r.ZJLX,r.ZJHM

    key: PRCOESS_RYKZXXB---value:k.ZW,k.ZC,k.CSZY

    key: testa---value:{"testb":{"testc":"testctest"},"testb1":"testb1text"}

    key: testb---value:{"testc":"testctest"}

    key: testb1---value:testb1text

    展开全文
  • 1 List集合转json字符串 //Java集合 List<String> list = new ArrayList<String>(); list.add("aa"); list.add("bb"); Gson gson = new Gson(); String...

    1 List集合转成json字符串

    //Java集合
            List<String> list = new ArrayList<String>();
            list.add("aa");
            list.add("bb");
            Gson gson = new Gson(); 
            String reslut = gson.toJson(list); 
            System.out.println(reslut);
    

    2 json字符串转成List集合

    1 Buy类中的属性 : Integer id; String name;
    2 
    3 String buyCodes = [{id : 2,name : "aaa"},{id : 3,name : "bbb"}];
    4 
    5 List<Buy> listBuy = gson.fromJson(buyCodes, new TypeToken<List<Buy>>() {}.getType());

     

     

     后续需要复杂的转换在更新.....

    转载于:https://www.cnblogs.com/liyong888/p/7776665.html

    展开全文
  • 对象转json字符串转对象一个字符串中包含多个对象转换为对象集合问题描述 今天在做一个调用别人接口时候返回来一个json串数组,解析返回一个ArrayList集合的问题,因为调用别人接口有点多,所以就想做通用...

    对象转json串字符串转对象一个字符串中包含多个对象转换为对象集合

    问题描述  今天在做一个调用别人接口的时候返回来一个json串数组,解析返回一个ArrayList集合的问题,因为调用别人的接口有点多,所以就想做的通用一点,虽然有点low,但是也是一步一个脚印走过去,相信自己的坚持让自己能做的更好  例如:”[{\”name\”:\”gg\”,\”pass\”:\”123\”},{\”name\”:\”gg\”,\”pass\”:\”234\”},{\”name\”:\”gg\”,\”pass\”:\”345\”}]”,字符串是这样的,转换为对象集合,里面包含两个属性值,一个是name,一个pass,下面直接上代码:

    package wxlogin;

    import java.io.IOException;

    import java.util.ArrayList;

    import java.util.List;

    import org.codehaus.jackson.map.ObjectMapper;

    import org.junit.Test;

    import net.sf.json.JSONArray;

    import net.sf.json.JSONObject;

    /**

    * @author lb

    * @time 2017年9月14日 上午11:46:21

    */

    @SuppressWarnings("unchecked")

    public class JSONUtil {

    public static T strToObject(String str,Class clazz){

    ObjectMapper mapper = new ObjectMapper();

    T t = null;

    try {

    t = mapper.readValue(str, clazz);

    return t;

    } catch (IOException e) {

    e.printStackTrace();

    }

    return t;

    }

    //对象转换为字符串

    public static String objectToStr(T t){

    ObjectMapper mapper = new ObjectMapper();

    String str = null;

    try {

    str = mapper.writeValueAsString(t);

    } catch (IOException e) {

    e.printStackTrace();

    }

    return str;

    }

    @Test

    public void testJson(){

    String str = "{\"name\":\"gg\",\"pass\":\"123\"}";

    System.out.println(str);

    System.out.println("--------------字符串转换为对象分割线-------------------");

    Person person = strToObject(str,Person.class);

    System.out.println(person.getName()+":"+person.getPass());

    System.out.println("----------------对象转换为字符串分割线-----------------");

    //对象转换为字符串

    String rtnString =  objectToStr(person);

    System.out.println(rtnString);

    }

    //对象转换为List集合

    private static List strToList(String str, Class clazz) {

    JSONArray json = JSONArray.fromObject(str);

    JSONObject object = null;

    T t = null;

    List list = new ArrayList<>();

    for (int i = 0; i < json.size(); i++) {

    object = JSONObject.fromObject(json.get(i));

    t = (T) JSONObject.toBean(object, clazz);

    list.add(t);

    }

    return list;

    }

    public static void main(String[] args) {

    String str = "[{\"name\":\"gg\",\"pass\":\"123\"},{\"name\":\"gg\",\"pass\":\"234\"},{\"name\":\"gg\",\"pass\":\"345\"}]";

    // List list = JSONUtil.strToList(str,Person.class);

    List list = strToList(str, Person.class);

    for (Person ps : list) {

    System.out.println(ps.getName() + ":" + ps.getPass());

    }

    }

    }

    使用的java实体如下:

    package wxlogin;

    /**

    * @author lb

    * @time   2017年9月14日 上午11:42:51

    */

    public class Person {

    private String name;

    private String pass;

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    public String getPass() {

    return pass;

    }

    public void setPass(String pass) {

    this.pass = pass;

    }

    }

    为了方便我直接把后来联想到的对象和字符串互转也加进来了。  下面运行main方法查看结果

    gg:123  gg:234  gg:345

    方法是用来解析类似的请求返回值的。  下面运行测试方法得到结果

    在使用的过程中,对于这些小工具类我目的是为了节约一些工作量,但是后面ObjectMapper这个确实没用过,查了一下资料,写了两个目前常用的,以后自己也会慢慢添加。(ObjectMapper是一个高效转化json格式数据的类)盗用别人的话  注意在使用ObjectMapper需要引入包,pom.xml中加入如下内容

    org.codehaus.jackson

    jackson-mapper-asl

    1.7.1

    有不正确之处还望指正。  欢迎提问。

    展开全文
  • 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph.jar,morph-1.0.1.jar下面是例子...

    使用到的类:net.sf.json.JSONObject

    使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph.jar,morph-1.0.1.jar

    下面是例子代码:

    // JSON转换

    JSONObject jsonObj = JSONObject.fromObject(jsonStrBody);

    Map classMap = new HashMap();

    classMap.put("results", WeatherBean_Baidu_City.class);

    classMap.put("index", WeatherBean_Baidu_City_Index.class);

    classMap.put("weather_data", WeatherBean_Baidu_City_Weatherdata.class);

    // 将JSON转换成WeatherBean_Baidu

    WeatherBean_Baidu weather = (WeatherBean_Baidu) JSONObject.toBean(jsonObj,

    WeatherBean_Baidu.class, classMap);

    System.out.println(weather.getResults());

    使用到的几个JAVA类代码:

    package com.lenovo.conference.entity.vo;

    import java.io.Serializable;

    import java.util.List;

    /**

    * 天气Bean

    *

    * @author SHANHY

    *

    */

    @SuppressWarnings("serial")

    public class WeatherBean_Baidu implements Serializable {

    private String error;//错误号

    private String status;//状态值

    private String date;//日期

    private List results;//城市天气预报集合(因为一次可以查询多个城市)

    public WeatherBean_Baidu() {

    super();

    }

    public String getError() {

    return error;

    }

    public void setError(String error) {

    this.error = error;

    }

    public String getStatus() {

    return status;

    }

    public void setStatus(String status) {

    this.status = status;

    }

    public String getDate() {

    return date;

    }

    public void setDate(String date) {

    this.date = date;

    }

    public List getResults() {

    return results;

    }

    public void setResults(List results) {

    this.results = results;

    }

    }

    package com.lenovo.conference.entity.vo;

    import java.io.Serializable;

    import java.util.List;

    /**

    * 天气Bean

    *

    * @author SHANHY

    *

    */

    @SuppressWarnings("serial")

    public class WeatherBean_Baidu_City implements Serializable {

    private String currentCity;//城市名称

    private String pm25;//pm2.5值

    private List index;//指数集合

    private List weather_data;//几天的天气集合

    public WeatherBean_Baidu_City() {

    super();

    }

    public String getCurrentCity() {

    return currentCity;

    }

    public void setCurrentCity(String currentCity) {

    this.currentCity = currentCity;

    }

    public String getPm25() {

    return pm25;

    }

    public void setPm25(String pm25) {

    this.pm25 = pm25;

    }

    public List getIndex() {

    return index;

    }

    public void setIndex(List index) {

    this.index = index;

    }

    public List getWeather_data() {

    return weather_data;

    }

    public void setWeather_data(

    List weather_data) {

    this.weather_data = weather_data;

    }

    }

    package com.lenovo.conference.entity.vo;

    import java.io.Serializable;

    /**

    * 天气Bean

    *

    * @author SHANHY

    *

    */

    @SuppressWarnings("serial")

    public class WeatherBean_Baidu_City_Weatherdata implements Serializable {

    private String date;// 日期

    private String dayPictureUrl;// 白天的天气图片

    private String nightPictureUrl;// 晚上的天气图片

    private String weather;// 天气

    private String wind;// 风向

    private String temperature;// 温度

    public WeatherBean_Baidu_City_Weatherdata() {

    super();

    }

    public String getDate() {

    return date;

    }

    public void setDate(String date) {

    this.date = date;

    }

    public String getDayPictureUrl() {

    return dayPictureUrl;

    }

    public void setDayPictureUrl(String dayPictureUrl) {

    this.dayPictureUrl = dayPictureUrl;

    }

    public String getNightPictureUrl() {

    return nightPictureUrl;

    }

    public void setNightPictureUrl(String nightPictureUrl) {

    this.nightPictureUrl = nightPictureUrl;

    }

    public String getWeather() {

    return weather;

    }

    public void setWeather(String weather) {

    this.weather = weather;

    }

    public String getWind() {

    return wind;

    }

    public void setWind(String wind) {

    this.wind = wind;

    }

    public String getTemperature() {

    return temperature;

    }

    public void setTemperature(String temperature) {

    this.temperature = temperature;

    }

    }

    package com.lenovo.conference.entity.vo;

    import java.io.Serializable;

    /**

    * 天气Bean

    *

    * @author SHANHY

    *

    */

    @SuppressWarnings("serial")

    public class WeatherBean_Baidu_City_Index implements Serializable {

    private String title;//标题

    private String zs;//舒适度

    private String tipt;//指数简述

    private String des;//指数概述

    public WeatherBean_Baidu_City_Index() {

    super();

    }

    public String getTitle() {

    return title;

    }

    public void setTitle(String title) {

    this.title = title;

    }

    public String getZs() {

    return zs;

    }

    public void setZs(String zs) {

    this.zs = zs;

    }

    public String getTipt() {

    return tipt;

    }

    public void setTipt(String tipt) {

    this.tipt = tipt;

    }

    public String getDes() {

    return des;

    }

    public void setDes(String des) {

    this.des = des;

    }

    }

    例子中解析所对应的JSON字符串

    {"error":0,"status":"success","date":"2015-01-15","results":[{"currentCity":"南京","pm25":"83","index":[{"title":"穿衣","zs":"较冷","tipt":"穿衣指数","des":"建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。"},{"title":"洗车","zs":"较适宜","tipt":"洗车指数","des":"较适宜洗车,未来一天无雨,风力较小,擦洗一新的汽车至少能保持一天。"},{"title":"旅游","zs":"适宜","tipt":"旅游指数","des":"天气较好,气温稍低,会感觉稍微有点凉,不过也是个好天气哦。适宜旅游,可不要错过机会呦!"},{"title":"感冒","zs":"少发","tipt":"感冒指数","des":"各项气象条件适宜,无明显降温过程,发生感冒机率较低。"},{"title":"运动","zs":"较不宜","tipt":"运动指数","des":"阴天,且天气寒冷,推荐您在室内进行低强度运动;若坚持户外运动,请选择合适的运动并注意保暖。"},{"title":"紫外线强度","zs":"最弱","tipt":"紫外线强度指数","des":"属弱紫外线辐射天气,无需特别防护。若长期在户外,建议涂擦SPF在8-12之间的防晒护肤品。"}],"weather_data":[{"date":"周四 01月15日 (实时:6℃)","dayPictureUrl":"http://api.map.baidu.com/images/weather/day/yin.png","nightPictureUrl":"http://api.map.baidu.com/images/weather/night/duoyun.png","weather":"阴转多云","wind":"北风微风","temperature":"8 ~ 4℃"},{"date":"周五","dayPictureUrl":"http://api.map.baidu.com/images/weather/day/duoyun.png","nightPictureUrl":"http://api.map.baidu.com/images/weather/night/qing.png","weather":"多云转晴","wind":"西北风3-4级","temperature":"12 ~ 0℃"},{"date":"周六","dayPictureUrl":"http://api.map.baidu.com/images/weather/day/qing.png","nightPictureUrl":"http://api.map.baidu.com/images/weather/night/duoyun.png","weather":"晴转多云","wind":"东北风3-4级","temperature":"8 ~ 0℃"},{"date":"周日","dayPictureUrl":"http://api.map.baidu.com/images/weather/day/qing.png","nightPictureUrl":"http://api.map.baidu.com/images/weather/night/qing.png","weather":"晴","wind":"西风微风","temperature":"10 ~ -1℃"}]},{"currentCity":"徐州","pm25":"154","index":[{"title":"穿衣","zs":"较冷","tipt":"穿衣指数","des":"建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。"},{"title":"洗车","zs":"较适宜","tipt":"洗车指数","des":"较适宜洗车,未来一天无雨,风力较小,擦洗一新的汽车至少能保持一天。"},{"title":"旅游","zs":"适宜","tipt":"旅游指数","des":"天气较好,但丝毫不会影响您出行的心情。温度适宜又有微风相伴,适宜旅游。"},{"title":"感冒","zs":"较易发","tipt":"感冒指数","des":"天气较凉,较易发生感冒,请适当增加衣服。体质较弱的朋友尤其应该注意防护。"},{"title":"运动","zs":"较不宜","tipt":"运动指数","des":"天气较好,但考虑天气寒冷,推荐您进行各种室内运动,若在户外运动请注意保暖并做好准备活动。"},{"title":"紫外线强度","zs":"最弱","tipt":"紫外线强度指数","des":"属弱紫外线辐射天气,无需特别防护。若长期在户外,建议涂擦SPF在8-12之间的防晒护肤品。"}],"weather_data":[{"date":"周四 01月15日 (实时:6℃)","dayPictureUrl":"http://api.map.baidu.com/images/weather/day/duoyun.png","nightPictureUrl":"http://api.map.baidu.com/images/weather/night/duoyun.png","weather":"多云","wind":"南风微风","temperature":"10 ~ 3℃"},{"date":"周五","dayPictureUrl":"http://api.map.baidu.com/images/weather/day/duoyun.png","nightPictureUrl":"http://api.map.baidu.com/images/weather/night/duoyun.png","weather":"多云","wind":"北风3-4级","temperature":"11 ~ -4℃"},{"date":"周六","dayPictureUrl":"http://api.map.baidu.com/images/weather/day/duoyun.png","nightPictureUrl":"http://api.map.baidu.com/images/weather/night/duoyun.png","weather":"多云","wind":"东风微风","temperature":"6 ~ -4℃"},{"date":"周日","dayPictureUrl":"http://api.map.baidu.com/images/weather/day/duoyun.png","nightPictureUrl":"http://api.map.baidu.com/images/weather/night/duoyun.png","weather":"多云","wind":"西风3-4级","temperature":"11 ~ -1℃"}]}]}

    以上这篇Java中Json字符串直接转换为对象的方法(包括多层List集合)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    展开全文
  • 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph.jar,morph-1.0.1.jar下面是例子...
  • 下面小编就为大家带来一篇JavaJson字符串直接转换为对象方法(包括多层List集合)。小编觉得挺不错,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • net.sf.json.JSONObject可以处理简单java对象和格式正确的json字符串互相转换。 ...可以处理复杂的java集合对象和格式正确的json字符串互相转换. ...3.json字符串转集合对象 4.集合对象转json字符串
  • java的对象或集合转成json形式字符串:json的转换插件是通过java的一些工具,直接将java对象或集合转换成json字符串。常用的json转换工具有如下几种:1)jsonlib需要导入以下包:2)Gson:google需要导入一下包3)...
  • 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph.jar,morph-1.0.1.jar下面是例子...
  • 字符串转对象 一个字符串中包含多个对象转换为对象集合 问题描述 今天在做一个调用别人接口时候返回来一个json串数组,解析返回一个ArrayList集合的问题,因为调用别人接口有点多,所以就想做通用一点,虽然...
  • Java中包含多层List对象集合嵌套的Json字符串直接转换为List对象集合实现方案。 2.自由自在 1)jar 包依赖 <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib...
  • 书签引短多层List集合的Json字符串转Java对象代码实现方案。2.解决方案需要使用到:net.sf.json.JSONObjectpublic static void main(String[] args) {// 将JSON字符串转换成JSON对象JSONObject jsonBean = ...
  • 今天遇到了个坑, 我的需求是将json集合转变成java集合, 前台明明传递的是[]形式的json集合, 后台解密后无论如何转换都报错, 异常详情:com.alibaba.fastjson.JSONException: syntax error, expect {, actual string, ...
  • 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph.jar,morph-1.0.1.jar下面是例子...
  • Json格式数据字符串转List集合和Map集合2016-01-11 09:52:51作者:MangoCool来源:MangoCool现在应用、接口之间传输数据越来越多倾向于使用json格式数据,因为解析速度快,数据资源占用较小。下面则是为了今后...
  • 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph.jar,morph-1.0.1.jar下面是例子...
  • 前台js数组转json字符串,后台json字符串转为json数组,最后转换成集合的具体实现http://blog.csdn.net/java_trainee/article/details/74479737
  • 使用到类:net.sf.json.JSONObject 下面是例子代码: // JSON转换 JSONObject jsonObj = JSONObject.fromObject(jsonStrBody); Map classMap = new HashMap(); classMap.put("results", ...
  • 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph.jar,morph-1.0.1.jar // JSON转换 ...
  • JSON 与 对象 、集合 之间转换JSON字符串java对象【json-lib】 在开发过程中,经常需要和别系统交换数据,数据交换格式有XML、JSON等,JSON作为一个轻量级数据格式比xml效率要高,XML需要很多...
  • 在开发过程中,经常需要和别系统交换数据,数据交换格式有XML、JSON等,JSON作为一个轻量级数据格式比xml效率要高,XML需要很多标签,这无疑占据了网络流量,JSON在这方面则做很好,下面先看下JSON的格式...
  • String j="json类型字符串"; 实体A接收 A a = JSON.parseObject(j, A.class); 实体集合List接收 List<A> list = JSON.parseArray(j, A.class); 若接收的json不是Sting类型可以通过.toString进行转换 需要的...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 315
精华内容 126
关键字:

java的json字符串转集合

java 订阅