GSON解析 json转java对象问题

使用Gson将JSONObject objectObj 对象转换为Charge对象部分代码:
Gson gs = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
Charge charge = gs.fromJson(objectObj.toString(), Charge.class);
问题是结果charge与objectObj结构一致但是某些字段的值不一样了!!!
详见截图,及截图中的标记信息,请大神们提供解决方案:
图片说明

1个回答

是不是Charge类的这些属性的类型和json的数据类型不一致导致转换失败呢?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Gson解析Json数据出现了异常
在用Gson解析如下Json的时候 String jsonStr = "{code:403,msg:无查询好友信息,result:[]}"; 解析代码为: Gson son = new Gson(); MessageInfo info = son.fromJson(jsonStr, MessageInfo.class); System.out.println(info.getCode()); System.out.println(info.getResult()); System.out.println(info.getMsg()); MessageInfo.java private int code; private String msg; private Result result; result为空的时候,就会出现异常 com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 31 望大神帮下忙,解决下,这个怎么来解析
根据java实体拼接可被gson解析的json字符串
**根据以下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<ModProperty> 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"...}
坐等求救,java用ssh的时候,Gson解析json有外键的时候报错
解析json是用的gson,实体类涉及到三张表三个类,之间的关系是: C表的一个字段是外键,为A表的主键 C表的另一个字段是外键,为B表的主键 转json的时候报如下异常,该怎么做,请具体一点. 这是多对多的关系吧? java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter? at com.google.gson.internal.bind.TypeAdapters$1.write(TypeAdapters.java:67) at com.google.gson.internal.bind.TypeAdapters$1.write(TypeAdapters.java:61) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68) at com.google.gson.internal.bind.ArrayTypeAdapter.write(ArrayTypeAdapter.java:93) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:195) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:195) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:195) at com.google.gson.internal.bind.ObjectTypeAdapter.write(ObjectTypeAdapter.java:107) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68) at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:96) at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:60) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:195) at com.google.gson.Gson.toJson(Gson.java:593) at com.google.gson.Gson.toJson(Gson.java:572) at com.google.gson.Gson.toJson(Gson.java:527) at com.chebeiyuan.utils.GsonUtil.objectToString(GsonUtil.java:29) at com.chebeiyuan.action.BaseAction.setResultJson(BaseAction.java:136) at com.chebeiyuan.action.BaseAction.setSuccessJson(BaseAction.java:149) at com.chebeiyuan.action.CarTypeAction.getUserCarList(CarTypeAction.java:51) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441) at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252) at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488) at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Thread.java:619)
用java的谷歌库gson解析JSON,如下的json数据,该如何定义java类??
求高人指点,用java的谷歌库gson解析JSON,如下的json数据,该如何定义java类?? 在线等............... { "00:00:8e:d7:ba:ac:88:47": { "flow-mod-3": { "version": 1, "type": "FLOW_MOD", "length": 72, "xid": 0, "match": { "dataLayerDestination": "00:00:00:00:00:00", "dataLayerSource": "00:00:00:00:00:00", "dataLayerType": "0x0000", "dataLayerVirtualLan": -1, "dataLayerVirtualLanPriorityCodePoint": 0, "inputPort": 1, "networkDestination": "0.0.0.0", "networkDestinationMaskLen": 0, "networkProtocol": 0, "networkSource": "0.0.0.0", "networkSourceMaskLen": 0, "networkTypeOfService": 0, "transportDestination": 0, "transportSource": 0, "wildcards": 4194302 }, "cookie": 45035997351236010, "command": 0, "idleTimeout": 0, "hardTimeout": 0, "priority": -32768, "bufferId": -1, "outPort": -1, "flags": 0, "actions": [ ], "lengthU": 72 } }, "00:00:8e:d7:ba:ac:88:46": { "flow-mod-1": { "version": 1, "type": "FLOW_MOD", "length": 72, "xid": 0, "match": { "dataLayerDestination": "00:00:00:00:00:00", "dataLayerSource": "00:00:00:00:00:00", "dataLayerType": "0x0000", "dataLayerVirtualLan": -1, "dataLayerVirtualLanPriorityCodePoint": 0, "inputPort": 1, "networkDestination": "0.0.0.0", "networkDestinationMaskLen": 0, "networkProtocol": 0, "networkSource": "0.0.0.0", "networkSourceMaskLen": 0, "networkTypeOfService": 0, "transportDestination": 0, "transportSource": 0, "wildcards": 4194302 }, "cookie": 45035997351236010, "command": 0, "idleTimeout": 0, "hardTimeout": 0, "priority": -32768, "bufferId": -1, "outPort": -1, "flags": 0, "actions": [ ], "lengthU": 72 }, "flow-mod-2": { "version": 1, "type": "FLOW_MOD", "length": 72, "xid": 0, "match": { "dataLayerDestination": "00:00:00:00:00:00", "dataLayerSource": "00:00:00:00:00:00", "dataLayerType": "0x0000", "dataLayerVirtualLan": -1, "dataLayerVirtualLanPriorityCodePoint": 0, "inputPort": 1, "networkDestination": "0.0.0.0", "networkDestinationMaskLen": 0, "networkProtocol": 0, "networkSource": "0.0.0.0", "networkSourceMaskLen": 0, "networkTypeOfService": 0, "transportDestination": 0, "transportSource": 0, "wildcards": 4194302 }, "cookie": 45035997351236010, "command": 0, "idleTimeout": 0, "hardTimeout": 0, "priority": -32768, "bufferId": -1, "outPort": -1, "flags": 0, "actions": [ ], "lengthU": 72 } } }
gson解析Java对象中包含对象集合不执行问题
当Gson解析Java对象中包含对象集合时,后面代码不执行 对象: private long user_id; private String user_name; private String user_password; private Date user_date; private int age; private String email; private String phone; private String user_sex; private Timestamp user_registDate; private String user_vip; private Timestamp user_vipDate; private String user_head; private Set<IpAddress> user_ips = new HashSet<IpAddress>(); 解析代码: Query query = session.createQuery("from UserInfo as u where u.phone=?0 and u.user_password=?1"); query.setParameter(0, userInfo.getPhone()); query.setParameter(1, Crypto.encryption(userInfo.getUser_password())); UserInfo user = (UserInfo) query.uniqueResult(); JsonObject json = new JsonObject(); String us = gson.toJson(user); 执行到String us = gson.toJson(user);这句时,当Ste<IpAddress>的值为一个时正常执行,当Set<IpAddress>值为多个时后面的代码不执行。
Java Gson解析多层嵌套json字符串
碰到类似如下格式的json,总是解析失败,希望大神帮助解析一下 { "code":0, "message":"", "data":[ { "info":{"id":0,"name":"lina","age":10}, "subclass":[] }, { "info":{"id":1,"name":"may","age":16}, "subclass":[ { "info":{"id":2,"name":"aa","age":13}, "subclass":[] }, { "info":{"id":3,"name":"bb","age":12},"subclass":[] } ] } ] }
Gson解析jsonString 出现问题,急!急!急!
解析前的对象: public class BBSInformation { private String BBSTitle = null; private String BBSAuthor = null; private String BBSContent = null; private String BBSTime = null; private String BBSKeywords = null; private int BBSAgree; private int BBSDisagree; private int BBSCommentNum; private String BBSUUID = null; public String getBBSTitle() { return BBSTitle; } public void setBBSTitle(String bBSTitle) { BBSTitle = bBSTitle; } public String getBBSAuthor() { return BBSAuthor; } public void setBBSAuthor(String bBSAuthor) { BBSAuthor = bBSAuthor; } public String getBBSContent() { return BBSContent; } public void setBBSContent(String bBSContent) { BBSContent = bBSContent; } public String getBBSTime() { return BBSTime; } public void setBBSTime(String bBSTime) { BBSTime = bBSTime; } public String getBBSKeywords() { return BBSKeywords; } public void setBBSKeywords(String bBSKeywords) { BBSKeywords = bBSKeywords; } public int getBBSAgree() { return BBSAgree; } public void setBBSAgree(int bBSAgree) { BBSAgree = bBSAgree; } public int getBBSDisagree() { return BBSDisagree; } public void setBBSDisagree(int bBSDisagree) { BBSDisagree = bBSDisagree; } public int getBBSCommentNum() { return BBSCommentNum; } public void setBBSCommentNum(int bBSCommentNum) { BBSCommentNum = bBSCommentNum; } public String getBBSUUID() { return BBSUUID; } public void setBBSUUID(String bBSUUID) { BBSUUID = bBSUUID; } } 生成的代码: try { //数据库查询 ResultSet rs = dd.query(sql, count); while(rs.next()) { BBSInformation bbsInfo = new BBSInformation(); bbsInfo.setBBSUUID(rs.getString("article_uuid")); bbsInfo.setBBSAuthor("article_author"); bbsInfo.setBBSTime(rs.getDate("article_date").toString()); bbsInfo.setBBSTitle(rs.getString("article_title")); bbsInfo.setBBSContent(rs.getString("article_content")); bbsInfo.setBBSKeywords(rs.getString("article_key")); bbsInfo.setBBSAgree(rs.getInt("article_agree")); bbsInfo.setBBSDisagree(rs.getInt("article_disagree")); bbsInfo.setBBSCommentNum(rs.getInt("article_comment")); bbsInformations.add(bbsInfo); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(bbsInformations.get(0).getBBSAuthor()); /*GetBBSIformation getBBSIformation = new GetBBSIformation(); getBBSIformation.setList(bbsInformations);*/ Gson gson = new Gson(); String bbsInfoJson = new WriteJson().getJsonData(bbsInformations); System.out.println(bbsInfoJson); response.setContentType("text/xml; charset=UTF-8"); PrintWriter out = response.getWriter(); out.println(bbsInfoJson); out.flush(); out.close(); 生成的jsonString: [{"BBSAuthor":"article_author","BBSContent":"我是一只小小小鸟","BBSTime":"1994-06-17","BBSKeywords":"android,java,c语言","BBSAgree":5,"BBSDisagree":2,"BBSCommentNum":3,"BBSUUID":"254ebfed-90d2-464f-a76b-a55aed6e8fb7"}] 解析的源代码: Type listType = new TypeToken<List<BBSInformation>>(){}.getType(); Gson gson=new Gson(); List<BBSInformation> list=gson.fromJson(jsondata, listType); 生成json和解析json用的是同一个对象BBSInformation,,弄了好久啊, 就是到这里,没有返回list,求告知是什么原因?
gson转换字符型的日期 date问题
前端传的"yyyy-MM-dd HH:mm:ss" 格式的字符串 ,后台转换不了:org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: The date should be a string value; nested exception is com.google.gson.JsonParseException: The date should be a string value 后台数据date传到前端 转换成 "yyyy-MM-dd HH:mm:ss" ,但是前端"yyyy-MM-dd HH:mm:ss"传到后端 gson解析不了 。 但是 前端传这种格式就能解析转成date :"2018-08-22T02:44:09.647Z"
com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 232?
GSON解析json格式字符串,利用GSON的fromJson函数,将Json字符串解析为java对象,spark本地模式可以执行,但是在集群上yarn模式一直出现以下错误: com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 232
Gson将字符串转换为对象时“\\\\”问题,请大神帮看看
最近在使用gson时遇到一个问题,字符串中包含两个“\\”,但是经过 gson.fromJson方法时,解析出的json对象只有一个“\”,请问该怎么解决?
c++解析json是否可以像JAVA一样封装成通用的方法
比如在java中,将json字符串转为对象可以用gson,转的方式大致如下: ``` public static <T> T json2obj(String json, Class<T> clz) { Gson gson = new Gson(); T object = gson.fromJson(json, clz); return object; } ``` 这是一个通用的方法,将json字符串转为对象,不用关心对象里面的字段名称;我现在刚接触c++,在http请求服务器后解析json,每个http请求所返回的字段都不一样,是否也可以像java一样写一个统一的转换方法,而不是给每个请求的每个字段都写一个转换并赋值的方法
请问如果利用gson解析这种复合格式的json数据?
初学java,在与别人一起做项目时 他发送过来的json格式是{"data":"", "info":"", "status":""} 其中,info和status的类型固定是字符和数字 但data里面的内容是类型不定的list 请问要怎么解决这个data的解析? 重点是list的类型不定!!! 不可能每种类型就又多写一个类去解析吧
Android 的Gson解析问题
public class DataEntity { /** * search_array : ["测试","解决"] * hot_search : ["解决","测试","12","测试3","黄金"] * major_search : ["专业搜索","专业搜索","专业搜索","专业搜索","专业搜索","专业搜索","专业搜索","专业搜索","专业搜索"] */ private List<Search_arrayEntity> search_array; private List<Hot_searchEntity> hot_search; private List<Major_searchEntity> major_search; public void setSearch_array(List<Search_arrayEntity> search_array) { this.search_array = search_array; } public void setHot_search(List<Hot_searchEntity> hot_search) { this.hot_search = hot_search; } public void setMajor_search(List<Major_searchEntity> major_search) { this.major_search = major_search; } public List<Search_arrayEntity> getSearch_array() { return search_array; } public List<Hot_searchEntity> getHot_search() { return hot_search; } public List<Major_searchEntity> getMajor_search() { return major_search; } public class Hot_searchEntity{ public String getTdata() { return tdata; } public void setTdata(String tdata) { this.tdata = tdata; } private String tdata; } public class Search_arrayEntity{ public String getData() { return data; } public void setData(String data) { this.data = data; } private String data; } public class Major_searchEntity{ public String data1; public String getDatat() { return data1; } public void setDatat(String data1) { this.data1 = data1; } } } 这样写实体类对吗? JsonException.JSON_TYPE json_type=JsonException.getJSONType(jsonObject.optString("data")); if(json_type.equals(JsonException.JSON_TYPE.JSON_TYPE_ARRAY)){ SearchBean searchBean=new Gson().fromJson(s, new TypeToken<SearchBean>(){}.getType()); searchView.getSuccess(searchBean); Log.e("GGG","arry"); }else if(json_type.equals(JsonException.JSON_TYPE.JSON_TYPE_OBJECT)){ SearchBean searchBean=new Gson().fromJson(s,SearchBean.class); searchView.getSuccess(searchBean); 报错信息如下: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 38 path $.data.search_array[0]
gson解析对象数组,使用泛型封装报错
问题如下: ``` java public class App { public static void main(String[] args) { List<User> userList = new ArrayList<>(); String json = "[{\"uid\":1,\"username\":\"user1\",\"password\":\"user1\",\"type\":\"普通\"}," + "{\"uid\":2,\"username\":\"user2\",\"password\":\"user2\",\"type\":\"普通\"}," + "{\"uid\":3,\"username\":\"user3\",\"password\":\"user3\",\"type\":\"普通\"}]"; userList = jsonToBeanList(json, User.class); // 这个地方报错:java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap // cannot be cast to com.hezhujun.match.pojo.User for (User user : userList) { System.out.println(user); } } public static <T> List<T> jsonToBeanList(String json, Class<T> clas) { Gson gson = new Gson(); List<T> list = gson.fromJson(json, new TypeToken<List<T>>() { }.getType()); // 这个地方可以正常打印 for (T t : list) { System.out.println(t); } return list; } /* 运行之后控制台输出的信息 {uid=1.0, username=user1, password=user1, type=普通} Exception in thread "main" {uid=2.0, username=user2, password=user2, type=普通} {uid=3.0, username=user3, password=user3, type=普通} java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to com.hezhujun.match.pojo.User at com.hezhujun.match.util.App.main(App.java:22) */ } ```
GSON解析JAVABEAN返回空值
{ "ErrorMessage": null, "ResponseData": { "Data": [ { "DeviceTypeConfigId": "1", "DeviceTypeName": "1", "SensorInfos": [ { "SensorCode": "AirTemperature", "SensorConfigId": 1, "SensorName": "空气温度", "ValueType": "Value" }, { "SensorCode": "AirHumidity", "SensorConfigId": 2, "SensorName": "空气湿度", "ValueType": "Value" }, { "SensorCode": "CarbonDioxide", "SensorConfigId": 3, "SensorName": "二氧化碳", "ValueType": "Value" }, { "SensorCode": "Radiance", "SensorConfigId": 4, "SensorName": "辐射强度", "ValueType": "Value" }, { "SensorCode": "SoilTemperature", "SensorConfigId": 5, "SensorName": "土壤温度", "ValueType": "Value" }, { "SensorCode": "SoilHumidity", "SensorConfigId": 6, "SensorName": "土壤湿度", "ValueType": "Value" } ] } ], "Index": 1, "PageSize": 1, "TotalCount": 8 } } 这是服务器返回的JSON数据,在转换的时候我是这样写的 jsonObject = new JSONObject(responseInfo.result); JsonsRootBean jsonsRootBean=gson.fromJson(responseInfo.result, JsonsRootBean.class); .Responsedata res=jsonsRootBean.getResponsedata(); System.out.println("--res-----"+res); 控制台中显示res 返回的值为NULL,请问这是为什么呢,实体类我已经写好了
解析包含null的原始json数组
Json数组: {"userName":null," msgArr":[null],"numrow":0} //String result Gson: new Gson().fromJson(result, MyClass.class); MyClass: public String userName; public int[] msgArr; ... 错误stack: at java.lang.IllegalArgumentException: Primitive array can't take null values. at java.lang.reflect.Array.set(Array.java:406) at com.google.gson.internal.bind.ArrayTypeAdapter.read(ArrayTypeAdapter.java:78) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172) at com.google.gson.Gson.fromJson(Gson.java:803) at com.google.gson.Gson.fromJson(Gson.java:768) at com.google.gson.Gson.fromJson(Gson.java:717) at com.google.gson.Gson.fromJson(Gson.java:689) at com.test.dao.RequestBase.onPostExecute(RequestBase.java:79) 如果不能修改json字符串 "msgArr=[null]",怎么解除这个异常?
求大神!! SpringbootAdmin2.1.4 解析gson类型的json出错
springboot2.1.4版本. 默认使用json转换器gson(spring.http.converters.preferred-json-mapper=gson), 使用springbootAdmin监控时, beans会报错Forgot to register a type adapter? ![图片说明](https://img-ask.csdn.net/upload/201904/22/1555921545_198734.png) 问题:springbootAdmin使用默认的jackson没问题,怎么能兼容gson?
安卓将json数据转换成对象,可是对象属性值为空,是为什么?
在写安卓项目的时候,将本地的json解析出来,然后将这个解析出的json字符串反序列化为实体类对象,json字符串是有数据没有问题的,但是这个对象的属性为空,是为什么,以下为截图,图一为本地json数据解析,后台打印是有值的,图二是用gson反序列化json字符串转换为实体对象,图三为后台打印的json字符串,以及实体类对象的属性值(为空),怎么回事?![图片说明](https://img-ask.csdn.net/upload/201904/30/1556630838_762732.jpg) ![图片说明](https://img-ask.csdn.net/upload/201904/30/1556630848_676641.jpg) ![图片说明](https://img-ask.csdn.net/upload/201904/30/1556630853_10177.jpg)
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
阿里P8数据架构师:顶级开发者都在用什么数据库?
其实从去年已经隐隐约约感觉到数据库的有变化,只是没有想到变得这么快。今年的一些事情实实在在地给了某些数据库重击,如果以前去某数据库还是喊喊,然后该用还用,今年从传统领域刮起的去某数据库的风,已经开始了,并且后面的乌云密布也看得见。 最近看一篇国外的开源产品提供厂商的一篇文字,主要是在询问了他的几百位客户后得出了下图中的2019年数据库的使用趋势。 从图中可以看出,MySQL以38.9...
面试官:关于Java性能优化,你有什么技巧
通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。 一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。 下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。 1.对象的生成和大小的调整。 J...
互联网公司分布式系统架构演进之路
介绍 分布式和集群的概念经常被搞混,现在一句话让你明白两者的区别。 分布式:一个业务拆分成多个子业务,部署在不同的服务器上 集群:同一个业务,部署在多个服务器上 例如:电商系统可以拆分成商品,订单,用户等子系统。这就是分布式,而为了应对并发,同时部署好几个用户系统,这就是集群 1 单应用架构 2 应用服务器和数据库服务器分离 单机负载越来越来,所以要将应用服务器和数据库服务器分离 3 应用服务...
【图解算法面试】记一次面试:说说游戏中的敏感词过滤是如何实现的?
版权声明:本文为苦逼的码农原创。未经同意禁止任何形式转载,特别是那些复制粘贴到别的平台的,否则,必定追究。欢迎大家多多转发,谢谢。 小秋今天去面试了,面试官问了一个与敏感词过滤算法相关的问题,然而小秋对敏感词过滤算法一点也没听说过。于是,有了下下事情的发生… 面试官开怼 面试官:玩过王者荣耀吧?了解过敏感词过滤吗?,例如在游戏里,如果我们发送“你在干嘛?麻痹演员啊你?”,由于“麻痹”是一个敏感词,...
程序员需要了解的硬核知识之汇编语言(一)
之前的系列文章从 CPU 和内存方面简单介绍了一下汇编语言,但是还没有系统的了解一下汇编语言,汇编语言作为第二代计算机语言,会用一些容易理解和记忆的字母,单词来代替一个特定的指令,作为高级编程语言的基础,有必要系统的了解一下汇编语言,那么本篇文章希望大家跟我一起来了解一下汇编语言。 汇编语言和本地代码 我们在之前的文章中探讨过,计算机 CPU 只能运行本地代码(机器语言)程序,用 C 语言等高级语...
OpenCV-Python 绘图功能 | 七
目标 学习使用OpenCV绘制不同的几何形状 您将学习以下功能:cv.line(),cv.circle(),cv.rectangle(),cv.ellipse(),cv.putText()等。 代码 在上述所有功能中,您将看到一些常见的参数,如下所示: img:您要绘制形状的图像 color:形状的颜色。对于BGR,将其作为元组传递,例如:(255,0,0)对于蓝色。对于灰度,只需传递...
GitHub 标星 1.6w+,我发现了一个宝藏项目,作为编程新手有福了!
大家好,我是 Rocky0429,一个最近老在 GitHub 上闲逛的蒟蒻… 特别惭愧的是,虽然我很早就知道 GitHub,但是学会逛 GitHub 的时间特别晚。当时一方面是因为菜,看着这种全是英文的东西难受,不知道该怎么去玩,另一方面是一直在搞 ACM,没有做一些工程类的项目,所以想当然的以为和 GitHub 也没什么关系(当然这种想法是错误的)。 后来自己花了一个星期看完了 Pyt...
Java知识体系最强总结(2020版)
更新于2019-12-15 10:38:00 本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。 文章目录...
计算机专业的书普遍都这么贵,你们都是怎么获取资源的?
介绍几个可以下载编程电子书籍的网站。 1.Github Github上编程书资源很多,你可以根据类型和语言去搜索。推荐几个热门的: free-programming-books-zh_CN:58K 星的GitHub,编程语言、WEB、函数、大数据、操作系统、在线课程、数据库相关书籍应有尽有,共有几百本。 Go语言高级编程:涵盖CGO,Go汇编语言,RPC实现,Protobuf插件实现,Web框架实...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Fiddler+夜神模拟器进行APP抓包
Fiddler+夜神模拟器进行APP抓包 作者:霞落满天 需求:对公司APP进行抓包获取详细的接口信息,这是现在开发必备的。 工具:Fiddler抓包,夜神模拟器 模拟手机 安装APP 1.下载Fiddler https://www.telerik.com/download/fiddler Fiddler正是在这里帮助您记录计算机和Internet之间传递的所有HTTP和HTTPS通信...
小白学 Python 爬虫(42):春节去哪里玩(系列终篇)
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(...
一文带你看清 HTTP 所有概念
上一篇文章我们大致讲解了一下 HTTP 的基本特征和使用,大家反响很不错,那么本篇文章我们就来深究一下 HTTP 的特性。我们接着上篇文章没有说完的 HTTP 标头继续来介绍(此篇文章会介绍所有标头的概念,但没有深入底层) HTTP 标头 先来回顾一下 HTTP1.1 标头都有哪几种 HTTP 1.1 的标头主要分为四种,通用标头、实体标头、请求标头、响应标头,现在我们来对这几种标头进行介绍 通用...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ...... ...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
[数据结构与算法] 排序算法之归并排序与基数排序
归并排序 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 基本思想 可以看到这种结构很像一棵完全二叉树,本文的归并排序我们采用递归去实现(也可采用迭代的方式去实现)。分阶段可以...
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合...
史上最牛逼的 Eclipse 快捷键,提高开发效率!
如果你在使用IDEA,请参考博主另外的一篇idea快捷键的博客。
如何快速打好Java基础?
二哥,我是一名大学生,专业是电力工程,但想自学 Java,如何快速打好基础呢? 微信上 tison 向我提出了这个问题。我想我是有资格来回答的,从北京奥运会那年开始学 Java,到现在已经有 10 多个年头了,真的是从一名编程白痴一步步走到现在的。 我在各大技术网站上分享了不少 Java 方面的原创文章,不知道影响了多少初学者,反正文章的留言中经常能看到他们由衷的感谢。现在每天仍然有不少同学(...
相关热词 c# singleton c#中类的默认值是 c#各种进制之间的转换 c# 正则表达式保留汉字 c#后台跨域 c#基础代码大全 c#指定combox选择 c#关系 mono c# 相差毫秒 用c#做一个简易计算器
立即提问