2020新笔记:

前端封装JSON,有id,和一个list集合。首字母大写的情况

var cd = [];for (var i = 0; i < selectArr.length; i++) {var cd1 = {};cd1["Isfz"] = falsecd1["Fseq"] = parseInt(data[0].fseq) + parseInt(i*1);cd1["FOperNumber"] = parseInt(data[0].fopernumber) + parseInt(i*10);cd1["FProcessId"] = selectArr[i].fid;cd[i] = cd1;}var cdajax = {"Id":document.getElementById("fid").value,"Hlist":cd,}$.ajax({url: '${path }/workJH/orderGongYiName',type: 'post',contentType : 'application/json;charset=UTF-8',data: JSON.stringify(cdajax),success: function (res) {}});

或者这样封装也行

var objList = {};objList.flowid = '123456';objList.id = 'abcdefg';objList.roleid = '654321';var jsonbeans = [];var input = $(".budget_tableone").find("input");input.each(function () {jsonbeans.push({"name":$(this).attr("name"),"value":$(this).val().replace(/,/g,'β')});});objList.jsonbeans = jsonbeans;

然后控制器

@RequestMapping(value = "/orderGongYiName", method = RequestMethod.POST)@ResponseBodypublic Object copyOrderGongYiName(@RequestBody(required = false) FM_FZ  fz) {。。。。。
}

问题来了,因为JSON首字母大写,导致映射不到实体类

于是就加了JsonProperty,即可。这里实体类千万不要大写,下面代码里是错误示范

@JsonIgnoreProperties(ignoreUnknown = true)
public class FM_FZ implements Serializable {private static final long serialVersionUID = -7091879592386660617L;/** 登录的TOKEN*/@JsonProperty(name ="Token")private String Token;/** 工序计划单ID*/@JsonProperty("Id")private long Id;/** 子单据体集合*/@JsonProperty(name ="Hlist")private List<FM_List> Hlist;
}

结论:@JsonProperty是JSON转Java对象时候属性的名称,即Java当前变量的别名,系统会取json中对应key值放到该属性;@JSONField是对象转json时,产生的json对象的key值。所以遇到首字母大写的情况最好两个注解都加上

2019年旧笔记:

如果加了contentType :application/json,后台要有实体类接参。要带上@Requestbody

用String 也是可以接受的 。JSON要首字母小写

var checkStatus = table.checkStatus('listTableId'),data = checkStatus.data;let dataAry = checkStatus.data.map(e=>{return {'fid':e.fid,'fdetailid':e.fdetailid} });
 let requestData = {swtichID:a,id:dataAry}$.ajax({url:  '${path }/workJH/updateJHStatus',type: 'POST',dataType:"json",//必须contentType : 'application/json;charset=UTF-8',data:JSON.stringify(requestData),success: function (res) {layer.msg(res)

如果是(int id,int age)前台不要加application/json

不懂可以参考  参考资料


 

关于 JAVA 框架-SSM-JSON 的提问

@Responsebody已经注解了,代表把对象自动转化成json格式。所以就没必要再手动转化成json了,控制器的返回值写Category,返回值也直接返回对象 同理,@Requestbody是将json格式的字符串,自动转化成pojo对应的对象

后台接收JSON,一直报415错误

因为web.xml没配置utf-8

<filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

如果不配置这个的话,就直接配置

<!-- jackson --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.5</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.5</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.5</version></dependency><mvc:annotation-driven ><mvc:message-converters><!-- 设置返回字符串编码 --><bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter"><property name = "supportedMediaTypes"><list><value>text/html;charset=UTF-8</value><value>application/json;charset=UTF-8</value></list></property></bean><!-- json转换器 --><bean id="mappingJackson2HttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"><property name="supportedMediaTypes"><list><value>text/html;charset=UTF-8</value><value>application/json;charset=UTF-8</value></list></property></bean></mvc:message-converters></mvc:annotation-driven>

dataType值如果为'json',jquery就会把后端返回的字符串尝试通过JSON.parse()尝试解析为js对象。

dataType值如果为'text',结果弹出框直接显示后台返回的json字符串。

dataType值如果为'html',结果弹出框直接显示后台返回的json字符串。

关于JSON的常见问题以及首字母大写的JSON相关推荐

  1. fastjson 大写转小写 字段_对象转json字符串,属性首字母大写自动变为小写

    RegReply r = new RegReply(); Data d = new Data(); d.setDateTimestamp(date); r.setMessageType("I ...

  2. Java 序列化对象为json字符串,属性首字母大写,并按照属性首字母排序

    1.创建类 import lombok.Data; import lombok.NoArgsConstructor; import lombok.AllArgsConstructor;import c ...

  3. Js 将JSON内部key值转换大小写和首字母大写

    /*** @param {Object} json* @param {Object} type: 默认不传 ==>全部小写;传1 ==>全部大写;传2 ==>首字母大写* 将json ...

  4. fastjson转换json字符串key的首字母小写变大写的解决办法

    问题描述 在开发过程中,由于接口文档的描述,要求json字符串的key首字母为大写,而java 的规范要求在定义bean的时候,成员属性是首字母小写的驼峰格式,java的基本规范一定要遵守,否则会出现 ...

  5. Json RequestBody日期相差8小时及首字母大写问题

    数据库和postman相差8个小时,debug后发现是jackson得问题.如果要解决这种问题,用文件配置可以解决#application.properties文件配置 spring.jackson. ...

  6. jackson转换json大写_jackson json序列化 首字母大写 第二个字母需小写

    有这样一个类: @Setter @Getter @JsonNaming(value= PropertyNamingStrategy.UpperCamelCaseStrategy.class)publi ...

  7. 20190608 JavaBean转jsonString时首字母大写的问题

    JavaBean转jsonString时首字母大写的问题 这次出差,对接第三方发行系统,又出现了大驼峰命名的json字符串,因此做个笔记记录下. 约定俗成的,JavaBean的属性采用小驼峰命名法.但 ...

  8. Springboot 使用restTemplate 进行跨域请求 response reqeust中首字母大写的问题

    请求第三方系统,调用第三方API时可能会遇到双方协商定义的响应体中某个字段的首字母为大写的情况: 响应体:{"PlannerId": test123,"Name" ...

  9. fastjson.android首字母大写转化问题

    fastjson.android首字母大写转化问题 使用fastjson转化javabean成json大写首字母变成小写 如果使用的是fastjson的完整版本,可以全局设置 TypeUtils.co ...

  10. fastjson首字母大写的几种方法

    最近新项目和嵌入式那边要进行通信,但是协议定义的Json格式是首字母大写,fastjson默认是首字母小写,这就很尴尬, 首字母小写是标准,非要定义首字母大写 技术交流QQ群 729987144 经过 ...

最新文章

  1. 从具体案例了解知识图谱
  2. 目前中关村在线上面的CPU排行情况
  3. [LeetCode] Interleaving String
  4. hashmap扩容 面试_HashMap面试,看完这一篇就够了(上)
  5. 移动端apm关键指标_3个经常被忽视的APM关键功能
  6. myeclipse怎么导入mysql驱动_myeclipse sql导入数据库驱动包
  7. 首次!阿里达摩院将Pure Transformer 应用于目标重识别ReID!
  8. 2017.11.20T19_5
  9. 正交匹配追踪算法(OMP)
  10. 怎么停止skywalking_SkyWalking 告警设置
  11. Word插入页码简单方法
  12. MaxScript分享|FBX骨架转Bip骨架脚本 动画无缝转换 (通吃Max9-2016版本)
  13. 梦想还是要有的,万一实现了呢?
  14. python中一元二次方程的虚根_一元二次方程的概念和习题(老师用)
  15. 新GRE佛教词汇表wordlist1 词源
  16. ViewPager嵌套ViewPager后子ViewPager滑动不正常问题
  17. world wind java sdk_World wind Java SDK安装开发测试
  18. FileHelpers Library
  19. mysql jdbc连接失败_JDBC连接MySQL失败
  20. chroma8000使用_chroma 8000电源供应器自动测试系统|chroma8000使用说明

热门文章

  1. MD5密码破解原理和网站
  2. python idle使用_Python IDLE 基本操作
  3. 百度分享如何自定义分享url和内容?
  4. server giving msxml3.dll error '80072f7d' when trying to access secure url
  5. VScode透明主题
  6. 智慧消防之物联网消防的意义
  7. M26 SDK开发环境搭建
  8. 网曝悼念牌汤圆吃出创可贴(图)
  9. (毕业设计资料)基于单片机自行车码表系统设计
  10. 编程实现英文数字到中文大写数字的转换