根据java实体拼接可被gson解析的json字符串 10C

根据以下java实体类拼接字符串,使用谷歌的GJONS可以解析,
1.Header header = (Header) gson.fromJson(json, Header.class);
2.Data entity = (Data) gson.fromJson(header.getData(), Data.class)

实体1 header
private String dataType;
private String sendTime;
private String data;

实体2 data
private T newData;
private List modProps;
private Object others;

实体3 ModProperty
private String name;
private FieldValue oldValue;
private FieldValue newValue;

实体4 FieldValue
private String vString;
private JsonArray vArray;
private JsonObject vObject;

  • 说明:
  • a.字符串必须满足以上实体
  • b.字符串使用谷歌gson能够准确的解析出来
  • c.newData中数据格式是{"name":"张三","tel":"12345678"...}
0

3个回答

我建议你先把实体用Gson转成json串,然后反向推出拼接字符串

0
onlymorgan
onlymorgan 可以帮我写一下不?写出对应可以解析的字符串。
10 个月之前 回复

通过重写toString方法,然后将每个对象按照一定顺序加在一起就可以完成拼接。

0
 public class GsonTest {
    static class Header {
        private String dataType;
        private String sendTime;
        private String data;
        //getter and setter
    }
    static class FieldValue {
        private String vString;
        private JsonArray vArray;
        private JsonObject vObject;
        //getter and setter
    }
    static class ModProperty {
        private String name;
        private FieldValue oldValue;
        private FieldValue newValue;
        //getter and setter
    }
    static class Data<T> {
        private T newData;
        private List<ModProperty> modProps;
        private Object others;
        //getter and setter
    }
    public static void main(String[] args) {
        test1();
        System.out.println("==================================");
        test2();
    }
    public static void test1() {
        Gson gson = new Gson();
        Header header = new Header("a", "b", "c");
        System.out.println(gson.toJson(header));//打印 {"dataType":"a","sendTime":"b","data":"c"}
        ///////////////////////////////////////////////////
        String dataType = "a";
        String sendTime = "b";
        String data = "c";
        String headerJson = "{\"dataType\":\"" + dataType + "\",\"sendTime\":\"" + sendTime + "\",\"data\":\"" + data + "\"}";
        header = gson.fromJson(headerJson, Header.class);
        System.out.println(header.getDataType() + "," + header.getSendTime() + "," + header.getData());
    }
    public static void test2() {
        Gson gson = new Gson();
        Data<String> dataObject = new Data<>();
        List<ModProperty> modProperties = new ArrayList<>();
        ModProperty modProperty = new ModProperty();
        modProperty.setName("哈哈哈");
        FieldValue newValue = new FieldValue();
        newValue.setvString("范德萨法师分散");
        JsonArray jsonArray = new JsonArray();
        jsonArray.add(1);
        jsonArray.add(3);
        jsonArray.add(3);
        newValue.setvArray(jsonArray);
        modProperty.setNewValue(newValue);
        modProperty.setOldValue(newValue);
        modProperties.add(modProperty);
        dataObject.setModProps(modProperties);
        dataObject.setNewData("范德萨发士大夫撒");
        dataObject.setOthers("范德萨法师发射我");
        System.out.println(gson.toJson(dataObject));
        /////////////////////////////////
        String dataJson = "{\"newData\":\"范德萨发士大夫撒\",\"modProps\":[{\"name\":\"哈哈哈\",\"oldValue\":{\"vString\":\"范德萨法师分散\",\"vArray\":[1,3,3]},\"newValue\":{\"vString\":\"范德萨法师分散\",\"vArray\":[1,3,3]}}],\"others\":\"范德萨法师发射我\"}";
        Data entity = (Data) gson.fromJson(dataJson, Data.class);
        System.out.println(entity.getNewData());
        System.out.println(entity.getOthers());
        System.out.println(((ModProperty) entity.getModProps().get(0)).getName());
    }
}

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Gson在java对象和json字符串之间转换
GsonLib下载链接 Gson相比org.json最大的好处是从json字符串转向java实例时候少了依据每个实例自己赋值的过程,比如在org.json的时候,我们先从json字符串构建一个jsonobject,然后用各种的json get方法获取到每个字段的值,这是一个体力活。而gson依据反射机制我们只要传递我们要实例化的类型class进去返回就是创建好的实例。大大减少了代码量。先从java
json字符串实体bean或者List<bean>互转(gson和jackson,支持泛型)
json字符串实体bean或者List<bean>互转(gson和jackson,支持泛型),支持json的格式化,所需要的包在代码也有说明。还有少的可以告知我,谢谢
后台使用gson将json字符串转换为List数组
List&amp;amp;lt;Map&amp;amp;lt;String, Object&amp;amp;gt;&amp;amp;gt; resultList= new Gson().fromJson(objList, new TypeToken&amp;amp;lt;List&amp;amp;lt;Map&amp;amp;lt;String, Object&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;(){}.getType());java 后台使用gson 将json字符串转
Gson使用及多层嵌套 json 定义类
问题描述对于简单的Json数据,其对应的java bean 也比较简单,尤其用GSON处理的时候。 但是如果是多层嵌套的json数据,如果是手工用JSONArray和JSONObject进行解析,还是可以的,虽然会繁琐一点。但是如果用GSON开源库解析,有该如何定义java bean呢? 如果定义不好,会出现NEP空指针异常。分析在我的项目中,有这样的一段代码, public TopicApi
GSON解析json含有不确定的泛型实体类,根据键值获取json数据
前面GSON解析json中存在不确定实体类 和GSON解析json中存在已知的不确定的泛型实体类 对于解析形如 String dataA = "{a:1, b:'Hello,world!', c:true, d:{aa:1}}"; String dataB = "{a:2, b:'Hello,world!', c:true, d:{ba:1, bb:'Hello word!'}}"; S
Gson获取json字符串中key对应的值
用到了Gson的JsonParser maven项目引入 &amp;lt;dependency&amp;gt;         &amp;lt;groupId&amp;gt;com.google.code.gson&amp;lt;/groupId&amp;gt;     &amp;lt;artifactId&amp;gt;gson&amp;lt;/artifactId&amp;gt;     &amp;lt;version&amp;gt;2.8.3&amp;lt;/version&amp;gt; &am
Android中Gson解析和生成JSON字符串讲解,GsonFormat一键生成对应的数据对象
工作内容: 1.如何Gson解析JSON字符串讲解。 2.LruCache缓存机制的讲解。 学习分享: 一、Gson解析JSON字符串 1.需明确Gson解析JSON字符串与使用JSONObject,JSONArray解析JSON字符串一样,需要逐层解析。 2.Gson的优势在于,可以轻松将JSON字符串中的数据转换成实际类(自定义类,属性名与JSON对象的键值同名) 注意:为减少中
JSON解析类库之Gson(6) --- 从指定的流中读取Json,并反序列化为指定类的对象
通常在向外提供接口时使用序列化,将我们处理后封装好的数据序列化成Json字符串,提一个接口,供其他程序调用。其他程序通过http调用接口获得Json数据,然后解析Json字符串获得我们想要的数据。 比如,我们可以调用天气预报网站提供的接口,获得他们返回的Json格式的天气数据,然后我们解析Json数据为我们的系统所用。而http接口调用,我们都是从连接中获取Json字符串的流,从流中解析Json。
Android JSON数据与实体类之间的相互转化-------GSON实现
这篇文章就是示范如何用GSON把JSON数据与实体类进行相互转化,需要用到gson-2.3.1.jar这个包 import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuild
Json转换利器Gson之实例一-简单对象转化和带泛型的List转化
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。   jar和源码下载地址: http://code.google.com/p/google-gson/downloads/list   实体类:   [java] view plaincopy ...
Gson实现复杂json字符串转bean
Gson实现复杂json字符串转bean 要解析的数据 [ { &amp;quot;airCondition&amp;quot;: &amp;quot;良&amp;quot;, &amp;quot;city&amp;quot;: &amp;quot;保定&amp;quot;, &amp;quot;coldIndex&amp;quot;: &amp;quot;易发期&amp;quot;, &amp;quot;date&amp;quot
忽略字段的首字母大小写,将json字符串转成javabean对象
忽略字段的首字母大小写,将json字符串转成javabean对象,解决Java对象中属性中首字母大写而取不到值(取到的值为空)的问题 忽略字段的首字母大小写,将json字符串转成List,解决Java对象中属性中首字母大写而取不到值(取到的值为空)的问题 本文当可以直接用记事本打开
Gson把Java POJO和Json数据字符串之间相互转换
Gson把Java POJO和Json数据字符串之间相互转换例如: POJO pojo = new POJO(); pojo.name = &quot;zhangphil&quot;; pojo.id = 1; pojo.strings = new ArrayList&amp;lt;&amp;gt;(); pojo.setBlog(&quot;zhangphil @...
利用GSON解析简单Json字符串
之前一直使用fastjson来解析json串,性能高,上手快,简单易学不错的! 最新听说fastjson爆出一个安全漏洞,只能寻找新的json库替代,就找到了gson,google开发的一款解析json的库, 平时工作中,复杂的json串解析用不太多,一般就是最基本的json串 用gson解析简单json串的示例如下: String jsonString = "{\"uid\":\"189
解析用Gson解析json遇到”一”:“二”类似字符串key,value,如何编写实体类
{"测A00007":["离线","离线"],"测A00006":["离线","离线"]}
用Gson实现json与对象、list集合之间的相互转化
先写一个Person实体类,导入Gson包                 String jsonData="{\"userid\":\"1881140130\"}";//第一种写法                 //1.把json转化为一个类对象 String jsonData="{'userid':'1881140130','username':'三哥','usersex':'男','
Gson 轻松处理 json 和实体类的属性名不一样
Gson 解析之 - 如何让 json 键和实体类的属性名不一样 最近Gson用的比较多,用的时候一直有一个疑问,难道本地的实体类的属性名一定要和Json的键一一对应吗? json数据 { &quot;name&quot;: &quot;wangzhen&quot;, &quot;age&quot;: 20, &quot;tall&quot;: &quot;176&quot;, &quot;sex&quot;: &quot;male&quot; } 对应的实体类 publ
gson实现字符串与对象的相互转换
最近一个项目需要用到JSON,需要在JSON字符串和对象之间相互转换,在网上找了些资料,发现google的Gson还是比较不错的。 废话不说,下面是简单的例子: 先上源码:下载(包含jar包) Person实体类[java] view plain copy print?package com.hsun.json;  /**  * Person 实体类  * @author hsun  *  */
java使用gson格式化json字符串
java使用gson格式化json字符串 [url]http://phpcode8.com/java/java- 使用jackson对Java对象与JSON字符串相互转换的一些总结 [url]http://www.blogjava.net/bolo/archive/2014/04/16/412533.html[/url] java使用gson格式化json字符串 ======...
技巧——gson之实体对应的字段取别名
因为我们项目中。后台是c++写的,后台的哥们返回的json格式首字母都是大写的,对于我们
使用GSON将对象和json字符串相互转化
对象转jsonUser user1 = new User("凤姐",12,new StringBuffer("未知"),true); System.out.println("转换之前的user1"+user1); String json = gson.toJson(user1);json转对象User user2 = gson.fromJson(json, User.clas
Gson解析字符串
Gson gson = new Gson(); Shareinfo result = gson.fromJson(title, Shareinfo.class); dec = result.getTitle(); titles = result.getDesc(); URL
解决gson实体转json时当字段值为空时,json串中就不存在该属性
如:address不为空时,json串可能为{"address","上海市"},当address = null 时,会发现该属性转换为json时key值不存在。细心看到你的java代码是这样Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss")                     .excludeFieldsWit
JSON解析类库之Gson(2) --- 泛型对象Map、List与JSON字符串互转
本文延续前一篇文章,继续介绍基本的Gson用法。这篇文章我们将介绍,如何实现Java泛型对象,如Map<>,List<>等泛型集合与JSON字符串互转。 泛型集合类型对象的序列化与反序列化。注:TypeToken的构造方法是protected修饰的,所以上面才会写成 new TypeToken<List<String>>(){}.getType() 而不是 new TypeToken<List<String>>().getType() 。
Java实现两个JSON串合并
把两个拼装好的JSON串合并成一个新的JSON,两个JSON相同的key值情况下只保存一个,后放入的JSON串对应key的Value值会覆盖先放入的。 同理可以实现多个JSON串合并。 [code=&quot;java&quot;]import net.sf.json.JSONObject; public class JSONCombine { public static void main(S...
Gson替换json中name的值
package com.vip.gsontest.tools; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import com.google.gson.JsonArray; import com.google.gs...
利用gson转换json获取指定内容
抓取到网页里的或者服务器返回的content里的json文件后,需要对文件进行解析。 可以利用gson搞定。demo如下:(代码里用到了httpclient的一些方法。) HttpResponse response = getUrlResponse( &quot;url&quot;, null, null, 60000); try { String json = EntityU...
json转实体:Gson的fromJson,传统的json解析
Gson提供了fromJson()方法来实现从Json相关对象到java实体的方法。 在日常应用中,我们一般都会碰到两种情况,转成单一实体对象和转换成对象列表或者其他结构。 先来看第一种: 比如json字符串为:[{“name”:”name0”,”age”:0}] Person person = gson.fromJson(str, Person.class);1 提供两个参数,分别是j
Gson序列化的对象包含json格式的子属性,json串被转义
如题,当Gson序列化的Java对象中包含一个jsonStr的字段存储的事json格式的字符串,比如数据库中本身存储的就是json格式的varchar jsonStr={&quot;name&quot;:&quot;chulainn&quot;,&quot;age&quot;:20,&quot;interest&quot;:&quot;霹雳布袋戏&quot;} Gson序列化后就变成{\&quot;name\&quot;:\&quot;chulainn\&quot;,\&quot;age\&quot;:20
通过Gson把json转化为不同类型的实体(不同实体转json)
GsonUtils.javapublic class GsonUtils { /** * Created by yuanopen on 2018/7/14/014. */ private static Gson GsonUtilsGson = new Gson(); /** * @fun 根据不同类型进行json到实体间的转化 * @param jsonString...
Android JSON数据与实体类之间的相互转化-------GSON的用法
这篇文章就是示范如何用GSON把JSON数据与实体类进行相互转化,需要用到gson-2.3.1.jar这个包。注释也比较详细,能够快速让接触gson的人上手
涉及泛型的Gson转化实体类
使用Gson转化成实体类中的一个方法,传的参数是 Type 对象。fromJson(String json, Type typeOfT)关于获取Type对象,我知道的有两种:Type type = new TypeToken&amp;lt;T&amp;gt;() {}.getType();和Type type = ((ParameterizedType) getClass().getGenericSupercla...
使用Gson将json字符串转为map
Map map = new Gson().fromJson(site.getAttrbutes(), new TypeToken>(){}.getType());
gson实体转json空字段处理
https://zhidao.baidu.com/question/469557613.html gson实体转json时当字段值为空时,json串中就不存在该属于,请问如何在值为空的时候也保留该字符串 如name不为空时,json串可能为{“name”,”test”},当name为空时,json串为{“name”,”“},或者{“name”,null},现在的情况是为空时,就不会有name
Gson解析时,在返回相同的实体,但对应的字段不同(可能是不同部门的api)
Is there any way in Gson to map multiple JSON fields to a single Java object member variable? Let's say I have a Java class... public class MyClass { String id; String name; } I want to
GSON解析JSON保存到数据库
今天给大家带来的文章为通过Gson解析json数据并快速保存至数据库的文章。我们要保存是json对象数组,本文中的json数组并非从后台获取,为了演示,直接手动构造。 需要保存到数据库的是手机的品牌和型号。所以,我们需要新建一个bean实体类去保存我们的型号和品牌。在这,我先介绍2个工具,一个是Google官方的Gson解析jar包。 名为Gson.jar,这个百度下载就可以了。另外一
gson解析泛型和将泛型转为json字符串
gson 解析泛型和将泛型转为json字符串
在线JSON字符串转Java实体类(JavaBean)
在线JSON字符串转Java实体类(JavaBean)
GSON解析json中存在不确定实体类
这几天遇到个解析json的问题,返回的json数据中包含不同的实体类,实体类的键值是确定的但是类型是不确定的。(描述可能不对,下面给出json例子) json数据例子如下: String dataA = "{a:1, b:'Hello,world!', c:true, d:{aa:1}}"; String dataB = "{a:2, b:'Hello,world!', c:true, d:
json 特殊字符解析问题
这是我解析json对象的方法 Gson gson = new Gson(); Initial initial = gson.fromJson(jsonStr,Initial.class); 里面有特殊字符,解析不了啊,只要有& 空格,:等都解析不了,谁知道怎么解决啊?急啊,十分感谢! 解决方案 » 在解析之前把特殊字符先替换一下.下面是
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java根据学习过的知识 java根据班号获取班级