
在前端传 foo 到后端,如果 obj.value 是空字符串,就把 null 传到后端:
const foo = obj.value || null ... s = { foo: foo; } data = JSON.stringify(s) ... 结果在后端收到是字符串 'null',这是 ajax 默认转换的吗?
1 opengps 2021 年 3 月 23 日 via Android 不是太懂前端,试探性回复下:这是你传入了值 |
2 opengps 2021 年 3 月 23 日 via Android 后端想要收到的值为 null,需要前端传递时候没有这个参数,或者声明入参类时候支持 null 才可以 |
3 des 2021 年 3 月 23 日 via iPhone 不是,说明你代码有问题 |
4 AllenHua 2021 年 3 月 23 日 如果 obj.value 是空字符串,就把 null 传到后端 `const foo = obj.value || null` 这一句里,如果 obj.value 是空字符串,那么会把空字符串给 foo 吧。 如果 obj 没有 value 属性,才会执行 || null, 会把 null 赋值给 foo 至于 后端收到字符串 null 你打印一下 obj 对象看看呢 `console.log('obj', obj)` |
5 Vegetable 2021 年 3 月 24 日 你 stringfy 之后,data 只是字符串,不管你用什么方法传给后端,后端收到的都是字符串,没有哪个框架或者工具会把 null 改成字符串。如果他解析出了 null,只能证明他解析的方法有问题。JSON 是支持 null 的,字符串应该是`{"foo":null}`这样的。如果想排除你自己的问题,直接 network 看一下发出去的 body 就好了 |
6 IvanLi127 2021 年 3 月 24 日 via Android 应该是后端的问题,你在前端再把 s 解析回 json 对象看看 |
7 renmu123 2021 年 3 月 24 日 via Android 首先 json 只有 null 值等的 js 对象中如果有 null 值,json.stringify()是会进行转换的,undefined 是不会转换的。 我不知道 java 有没有所谓的空值(大概率是有的) 大概率是 json 解析器的问题 |