精华内容
下载资源
问答
  • Json串直接映射成对象

    2013-08-01 15:39:42
    GSON 反射 映射对象 ReboGuice 绝对实用,物有所值.
  • Flutter:Json映射对象,超级简单

    万次阅读 2018-06-11 14:58:29
    首先要借助一个工具jsonformat 工具下载地址 举一个例子 json文件,来自玩安卓网站 这是一个相对很复杂的json文件 用jsonview打开查看,这个json文件...下面使用jsonformat 转换dart bean文件 打开下载的jsonfor...

    首先要借助一个工具jsonformat 工具下载地址

    举一个例子 json文件,来自玩安卓网站

    这是一个相对很复杂的json文件

    用jsonview打开查看,这个json文件包含一个data的数组和两个变量,然后数组的每一项又包含一个数组和6个变量,然后下一级数组的每一项又包含一个数组和6个变量
    这里写图片描述

    下面使用jsonformat 转换成dart bean文件

    打开下载的jsonformat ,将json文件copy进去点击格式化
    这里写图片描述

    右边的红色是我们要填写的类名称,对应关系像这样,这里分别填写 tree children children ,后两个相同,点击生成bean
    这里写图片描述

    生成代码如下

    import 'dart:convert' show json;
    
    
    class tree {
    
      int errorCode;
      String errorMsg;
      List<children> data;
    
    
      tree(jsonStr) {
      var jsonRes = json.decode(jsonStr);
    
        errorCode = jsonRes['errorCode'];
        errorMsg = jsonRes['errorMsg'];
        data = [];
    
    for (var dataItem in jsonRes['data']){
    
        data.add(new children(dataItem));
    }
    
    
      }
    
      @override
      String toString() {
        return '{"errorCode": $errorCode,"errorMsg": ${errorMsg != null?'${json.encode(errorMsg)}':'null'},"data": $data}';
      }
    }
    
    
    
    class children {
    
      int courseId;
      int id;
      int order;
      int parentChapterId;
      int visible;
      String name;
      List<children> children;
    
    
      children(jsonRes) {
        courseId = jsonRes['courseId'];
        id = jsonRes['id'];
        order = jsonRes['order'];
        parentChapterId = jsonRes['parentChapterId'];
        visible = jsonRes['visible'];
        name = jsonRes['name'];
        children = [];
    
    for (var childrenItem in jsonRes['children']){
    
        children.add(new children(childrenItem));
    }
    
    
      }
    
      @override
      String toString() {
        return '{"courseId": $courseId,"id": $id,"order": $order,"parentChapterId": $parentChapterId,"visible": $visible,"name": ${name != null?'${json.encode(name)}':'null'},"children": $children}';
      }
    }
    
    
    
    class children {
    
      int courseId;
      int id;
      int order;
      int parentChapterId;
      int visible;
      String name;
      List<dynamic> children;
    
    
      children(jsonRes) {
        courseId = jsonRes['courseId'];
        id = jsonRes['id'];
        order = jsonRes['order'];
        parentChapterId = jsonRes['parentChapterId'];
        visible = jsonRes['visible'];
        name = jsonRes['name'];
        children = [];
    
    for (var childrenItem in jsonRes['children']){
    
        children.add(childrenItem);
    }
    
    
      }
    
      @override
      String toString() {
        return '{"courseId": $courseId,"id": $id,"order": $order,"parentChapterId": $parentChapterId,"visible": $visible,"name": ${name != null?'${json.encode(name)}':'null'},"children": $children}';
      }
    }
    
    

    接下来就是在APP中请求网络,将其转换成dart bean

        ///封装的get请求 _networkUtil,可以替换成自己的请求方式
      ///发起get网络请求并且转换json
      Future<dynamic> requestGet(String url) {
        return http.get(url)
            .then((http.Response response) {
            final String res = response.body;
            final int statusCode = response.statusCode;
    
            if (statusCode < 200 || statusCode > 400 || json == null) {
              throw new Exception("Error while fetching data");
            }
            ///有值
            return _decoder.convert(res);
        });
      }
     ///这里返回的就是 Future<Tree> 对象,(fillUrl(TREE_LIST)是请求的url
      Future<Tree> fetchTree() {
        return _networkUtil.requestGet(fillUrl(TREE_LIST)).then((dynamic res) {
          ///可以这样取值
          return new Tree.map(res);
        });
      }

    转换成对象以后使用就很方便了,直接 点 就行了
    这里写图片描述

    展开全文
  • 亮点是函数式,支持 JSON 解析、映射对象对象序列化为 JSONJSON 库层出不穷,这个函数式还真有点意思
  • json数据映射成对象的处理办法

    千次阅读 2017-08-29 14:42:35
    //解析json成对象 val eventa = data.extract[Person] Some(eventa) }).persist() input.foreachPartition(s => { val topic = "xx" val brokers = "xx" val props = new Properties() ...
        case class Person(channel: String,
                          IP: String,
                          mid: String,
                          user_id_temp: String,
                          user_id: String,
                          request_type: String,
                          request_method: String,
                          access_time: String) extends Serializable {
          private val serialVersionUID = 7247714666080613254L
        }
    val conf = new SparkConf()
        //    conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
        //    conf.registerKryoClasses(Array(classOf[Person]))
    
        val spark = SparkSession.builder().master("local[*]").appName("sql").config(conf).getOrCreate()
    
        val input5 = spark.sparkContext.textFile("file:///C:/.../Request", 100)
    
        val input = input5.flatMap(line => {
          implicit val formats = Serialization.formats(ShortTypeHints(List()))  //序列化
          val data = parse(line)      //解析json成对象
          val eventa = data.extract[Person]
          Some(eventa)
        }).persist()
    
        input.foreachPartition(s => {
          val topic = "xx"
          val brokers = "xx"
          val props = new Properties()
          props.put("metadata.broker.list", brokers)
          props.put("serializer.class", "kafka.serializer.StringEncoder")
          val kafkaConfig = new ProducerConfig(props)
          val producer = new Producer[String, Object](kafkaConfig)
          val event = new JSONObject()
          while(s.hasNext){
            val x = s.next()
            event
              .put("access_time", x.access_time)
              .put("channel", x.channel) //
              .put("ip", x.IP) //
              .put("mid", x.mid) //
              .put("user_id", x.user_id)
              .put("user_id_temp", x.user_id_temp)
              .put("request_type", x.request_type)
              .put("request_method", x.request_method)
            println(event)
            producer.send(new KeyedMessage[String, Object](topic, event.toString))
            Thread.sleep(100)
          }
    展开全文
  • JSON串转换映射成java对象

    千次阅读 2018-02-04 17:07:17
    在工作中,经常会将JSON串转换映射成java对象,如下是fastjson和jsonLib将JSON串转换JAVA对象的实例,特在此记录。 工程结构: UserInfo.java package com.bijian.test; public class UserInfo { ...

      在工作中,经常会将JSON串转换映射成java对象,如下是fastjson和jsonLib将JSON串转换成JAVA对象的实例,特在此记录。

    工程结构:

    UserInfo.java

    package com.bijian.test;
    
    public class UserInfo {
    
        private String name;
        private int age;
        private String address;
        
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getAddress() {
            return address;
        }
        public void setAddress(String address) {
            this.address = address;
        }
        @Override
        public String toString() {
            return "UserInfo [name=" + name + ", age=" + age + ", address=" + address + "]";
        }
    }

    Main.java

    package com.bijian.test;
    
    import com.alibaba.fastjson.JSON;
    
    import net.sf.json.JSONObject;
    
    public class Main {
        
        private static String jsonStr = "{\"name\":\"zhangshan\", \"age\": 10, \"address\": \"中国深圳\"}";
        
        public static void main(String[] args) {
            
            //JSON-LIB
            JSONObject jsonResult = JSONObject.fromObject(jsonStr);
            UserInfo userInfo = (UserInfo)JSONObject.toBean(jsonResult, UserInfo.class);
            System.out.println("userInfo:" + userInfo);
            
            //fastjson
            com.alibaba.fastjson.JSONObject jsonObject = JSON.parseObject(jsonStr);
            UserInfo userInfo2 = com.alibaba.fastjson.JSONObject.toJavaObject(jsonObject, UserInfo.class);
            System.out.println("userInfo2:" + userInfo2);
        }
    }

     运行结果:

    userInfo:UserInfo [name=zhangshan, age=10, address=中国深圳]
    userInfo2:UserInfo [name=zhangshan, age=10, address=中国深圳]

      当然,json-lib的使用坑可以进一步查看《JSONObject以及json串》一文了解。

    展开全文
  • QtRestClient:一个用于基于JSON的通用REST-API的库,具有将JSON映射到Qt对象的机制
  • 如何将请求json映射成实体类

    千次阅读 2018-09-05 11:18:56
    在开发过程中有时会遇到前台请求参数需要直接转换对应的实体类,避免数据类型的转换,而请求数据类型多为json数据块。如何实现数据的直接转换呢? 开发场景: 前端请求json如下: { "id":"3&...
    在开发过程中有时会遇到前台请求参数需要直接转换成对应的实体类,避免数据类型的转换,而请求数据类型多为json数据块。如何实现数据的直接转换呢?
    

    开发场景:
    前端请求json如下:

    {
    "id":"3",
    "jobName":"test",
    "jobGroup":"test",
    "cronExpression":"0 0/1 * * * ?  ",
    "implUrl":"test"
    }

    转换成目标实体如下:

    public class ScheduleJob {
    
        private Long id;
    
        private String jobName;
    
        private int status;
    
        private String jobGroup;
    
        private String cronExpression;
    
        private String implUrl;
    
        private String remark;
    
    
    }

    实现方法:

    public R save(HttpServletRequest request){
            String requestJson = HttpAnalysisUtils.resolveRequestToBody(request);
            ScheduleJob scheduleJob= (ScheduleJob) FastJsonConvertUtils.jsonToJavaObject(requestJson, ScheduleJob.class);
            //TODO 业务实现
            return R.ok();
        }

    HttpAnalysisUtils

    package com.starehealth.overseer.utils;
    
    import javax.servlet.http.HttpServletRequest;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.Map;
    import java.util.Set;
    
    /**
     * Created by b 
     */
    public class HttpAnalysisUtils {
    
        /**
         * analysis request json from url
         * @param request  method get
         * @return
         */
        public static String resolveRequestToUrl(HttpServletRequest request){
            Map requestMap = request.getParameterMap();// resqustMap type is <Object,String[]>
            /*把单个参数解析为字符 而不是数组*/
            Set<Map.Entry<String, Object>> requestEntries = requestMap.entrySet();
            requestEntries.parallelStream().forEach(n->{
                Object[] values = (Object[]) n.getValue();
                if (values.length == 1) n.setValue(values[0]);
            });
            return JsonConvertUtils.toJson(requestMap);
        }
    
        /**
         * analysis request json from body
         * @param request method post
         * @return
         */
        public static String resolveRequestToBody(HttpServletRequest request){
            try {
                int length = request.getContentLength();
                String requestStr = "";
                StringBuilder sb = new StringBuilder();
                if (length != 0) {
                    InputStream inputStream = request.getInputStream();
                    BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
                    while ((requestStr = br.readLine()) != null) {
                        sb.append(requestStr);
                    }
                    br.close();
                }
                return sb.toString();
            }catch (IOException e){
                throw new RuntimeException(e);
            }
        }
    }
    

    FastJsonConvertUtils

    package com.starehealth.overseer.utils;
    
    import com.alibaba.fastjson.JSON;
    import org.apache.commons.lang3.builder.ToStringBuilder;
    
    import java.util.Map;
    
    /**
     * fastJson 操作类
     * 
     * @author sl
     *
     */
    public class FastJsonConvertUtils {
    
    
      /**
       * hippo-server used 清洗对象格式
       * 
       * @param obj origin obj
       * @return obj
       */
      public static Object cleanseToObject(Object obj) {
        if (obj == null) {
          return null;
        }
        try {
          if (obj.getClass().isPrimitive()) {
            return obj;
          } else {
            return JSON.toJSONString(obj);
          }
        } catch (Exception e) {
          throw new ClassCastException("obj cleanse:" + ToStringBuilder.reflectionToString(obj));
        }
      }
    
    
      @SuppressWarnings("unchecked")
      public static Map<String, Object> jsonToMap(String data) {
        return JSON.parseObject(data, Map.class);
      }
    
    
    
      public static Object jsonToJavaObject(String object, Class<?> parameterType) {
    
        return JSON.parseObject(object, parameterType);
      }
    }
    
    

    JsonConvertUtils

    package com.starehealth.overseer.utils;
    
    import javax.servlet.http.HttpServletRequest;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.Map;
    import java.util.Set;
    
    /**
     * Created by b 
     */
    public class HttpAnalysisUtils {
    
        /**
         * analysis request json from url
         * @param request  method get
         * @return
         */
        public static String resolveRequestToUrl(HttpServletRequest request){
            Map requestMap = request.getParameterMap();// resqustMap type is <Object,String[]>
            /*把单个参数解析为字符 而不是数组*/
            Set<Map.Entry<String, Object>> requestEntries = requestMap.entrySet();
            requestEntries.parallelStream().forEach(n->{
                Object[] values = (Object[]) n.getValue();
                if (values.length == 1) n.setValue(values[0]);
            });
            return JsonConvertUtils.toJson(requestMap);
        }
    
        /**
         * analysis request json from body
         * @param request method post
         * @return
         */
        public static String resolveRequestToBody(HttpServletRequest request){
            try {
                int length = request.getContentLength();
                String requestStr = "";
                StringBuilder sb = new StringBuilder();
                if (length != 0) {
                    InputStream inputStream = request.getInputStream();
                    BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
                    while ((requestStr = br.readLine()) != null) {
                        sb.append(requestStr);
                    }
                    br.close();
                }
                return sb.toString();
            }catch (IOException e){
                throw new RuntimeException(e);
            }
        }
    }
    
    展开全文
  • json-mappings-generator:Crystal lang的实用程序库,可自动生成JSON映射的clase的源,以从json字符串填充对象
  • 这是一个非常强烈的要求:但是,很可能您是映射对象的所有者,并且您可以遵守多个协议。 特征 JSONMapper 能够映射 字符串 整数 布尔值 嵌套对象 嵌套数组 使用 JSONMapper 对于给定的示例 JSON 内容 { "id": ...
  • Json格式与对象之间的映射关系

    千次阅读 2018-03-01 17:49:38
    Json格式与对象之间的映射关系大括号与中括号 大括号({}):可以看作是一个对象,或者对应于程序中的对象对象中可以包含属性 大括号{}内部是采用key:value的形式,key可以是string,int等,value可以是string,int,...
  • 一、mybatis 主要属性: 1、typeHandler:不过要自定义处理类,要继承BaseTypeHandler;数据的读写都会被这个类所过滤 <...id column="id" jdbcType="NUMERIC" property="id"/>...result column="test_json" java.
  • JSON映射对象对象映射到JSON 嵌套对象(独立,数组或字典形式) 映射期间的自定义转换 结构支持 基础 为了支持映射,一个类或结构只是需要实现Mappable协议,其中包括以下功能: init? ( map : Map) ...
  • XLYMapping 旨在将 JSON 映射到本地对象。 目标对象可以是从 NSObject 继承的对象,因为我使用 KVC 来设置值。 更多细节显示在下面的演示和测试代码中。 注意:映射过程如下: 将映射。 有机会修改 JSON。 动态...
  • 该源码实现了实现JSON对象映射功能,也是一个轻量级的框架,提供 JSON对象映射,并且还封装HTTP访问restful server的接口。接口类似Restkit,主要技术包括KVO, block等,喜欢的朋友可以研究一下吧。
  • JSON 映射器 一个简单的轻量级 JSON 映射实用程序。 我如何使用它? 通过 Dart Pub 包管理器下载依赖项。 将以下行添加到您的 pubspec.yaml 依赖项中: json_mapper: "any" 完成后,使用pub get获取包,然后导入...
  • QJson:将JSON数据映射到QVariant对象的基于Qt的库
  • JsonMe轻量级JSON映射类库源码 JSON全称为JavaScript Object Notation,原本作为JavaScript语言中用于表示对象结构的文本形式。不过目前JSON成功地脱离了JavaScript语言,它已经成为一种运用十分广泛的数据交换格式...
  • 在Android中可以使用Gson解析JSON数据 首先,从 code.google.com/p/google-gson/downloads/list下载GsonAPI: google-gson-1.7.1-release.zip 把gson-1.7.jar copy到libs(项目根目录新建一个libs文件夹)...
  • 将 Java 对象序列化为 Json 并将 Json 反序列化为 Java 对象的实用程序 为什么是另一个框架? 我喜欢其他 json 框架,flexjson 和 gson。 但是,有一些功能我无法在一个框架中全部找到。 因此创建了 Rjson。 这些...
  • 首先,要映射以下JSON结构: [ { " name " : " Yuri " }, { " name " : " Oleg " , " email " : " oleg@example.com " , " address " : { " city " : " Vologda " } } ] 分为以下类层次结构: <?php class ...
  • hibernate2json 该实现取自 要使用添加Maven依赖项,请执行以下操作: < groupId>com.github.alaptseu</ groupId> < artifactId>hibernate2json < version>1.0 如果您喜欢快照版本: < id>oss....
  • 由于MongoDB使用JSON的二进制形式BSON来存储其文档,因此JSON映射器是将Java对象映射到MongoDB文档的理想机制。 最好的Java JSON映射器是Jackson。 Jackson的解析/生成接口适合像手套一样序列化到MongoDB的文档。 ...
  • //net.sf.json方式转化 net.sf.json.JSONObject json1=JSONObject.toBean(jsonObject, ...// 阿里巴巴json转化 com.alibaba.fastjson.JSONObject json2=com.alibaba.fastjson.JSONObject.toJavaObject(jsonObjec...
  • 使用函数在对象序列化之前验证 JSON 提供用于映射的现有缓存对象,返回用于映射的另一种类型(也符合 BaseMappable)的对象。 例如,您可以检查 JSON 以推断应该用于映射对象类型。 ObjectMapper 支持键内的点...
  • C++没有元对象,无法实现json对象映射(比如GSon),或者数据库的对象关系映射(比如GreenDao)。C++可以获取变量的字符串(#define name2str(name) (#name))和变量的类型(#define getType(value) typeid(value...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 112,669
精华内容 45,067
关键字:

json映射成对象