V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lujiaxing  ›  全部回复第 12 页 / 共 19 页
回复总数  364
1 ... 4  5  6  7  8  9  10  11  12  13 ... 19  
2023-09-20 15:50:46 +08:00
回复了 BeautifulSoap 创建的主题 Go 编程语言 踩到 Go 的 json 解析坑了,如何才能严格解析 json?
@BeautifulSoap 那我就要问问了, 测试干嘛去了. 上线前不做集成测试的么? 怎么可能出现两边接口对不上的问题?

而且如果你要是真对自己团队的成员都如此不信任的话, 那我就只能建议你放弃 json, 改用更加严格的 SOAP 或者 GRPC 了. 那玩意不用校验, 说好的字段缺一个字都会炸.
2023-09-20 13:50:51 +08:00
回复了 BeautifulSoap 创建的主题 Go 编程语言 踩到 Go 的 json 解析坑了,如何才能严格解析 json?
@BeautifulSoap 对于值类型 (或称原子类型) JSON 字段的 NULL / Undefined 的解析就应该解析为类型默认值. 即: 0.
这是这么多年约定俗成的要求, 也是标准做法. 没什么可争论的. 说了好几遍了 "后端不能信任前端/外部接口传来的数据". 你自己不做数据合法性校验难道还赖前端不给你传么?? 没人说你一定要把 DTO 里改成指针, 你可以不改啊, 但是你代码逻辑肯定要判断啊, 尤其这种支付的场景, 前端本就不该把金额传给你好不好? 标准做法应该是只给你传一个订单号, 以及用户在支付平台扫码得到的 AuthToken... 金额/SKU 摘要/标题等是要你从订单里翻出来的!! 哪儿有前端告诉你是多少钱就是多少钱的道理?
2023-09-20 13:09:36 +08:00
回复了 gowl 创建的主题 .NET 看来 Windows Forms 依然活的好好的
这玩意多得很. 很多医疗系统, 工控系统都是 WinForm 的. 甚至有不少客户用的还是 Windows XP. 你不用 WinForm 准备拿什么玩意给他们用...

不过现在很多都已经转 Avalonia / Uno 了. 毕竟信创嘛, 总要考虑那些统信之类的 Linux 环境的.
2023-09-20 13:03:45 +08:00
回复了 BeautifulSoap 创建的主题 Go 编程语言 踩到 Go 的 json 解析坑了,如何才能严格解析 json?
@kumoocat 其实这种在 C# 里就很好解决. C# 里对于值类型有 Nullable<T> 包装类, 简化为 "-?", 如: Int32? Color? 等.
如果觉得某个值不应该为 NULL, 要么把对应字段改为 Nullable 类型即可. 这样遇到相应字段不存在/null 的情况下, 反序列化回来的就绝不会是默认值了.

或者更进一步在对应的 Property 上加 [JsonRequired] Attribute. 反序列化发现空值直接报错.
2023-09-20 12:59:42 +08:00
回复了 BeautifulSoap 创建的主题 Go 编程语言 踩到 Go 的 json 解析坑了,如何才能严格解析 json?
搞什么鬼? JSON 本来就是非严格结构好不好? 经常会有 A 跟 C 对接, A 提供 a, b, c, d 字段但是 C 接受 b, c, e, f 的情况. 毕竟 C 可能还要接 B. 所以遇到 "C 接 A 的时候 e, f 没有值, 接 B 时候 b 没有值" 是极其正常的情况.

如果你觉得这种出现默认值的情况不合理, 要么要求调用方修改, 要么自己在代码里做 Guarding.

要么就不要用 JSON 改用 SOAP XML.
2023-08-31 19:55:33 +08:00
回复了 0littleboy 创建的主题 程序员 生物存在的意义是什么?(午休时的奇思妙想)
给嘉然打钱
2023-08-17 11:12:18 +08:00
回复了 thinkm 创建的主题 程序员 为啥很多国产 APP 用了微信登录还是要绑定手机啊?
没办法 国家有实名要求. 账号必须是实名的.
不过绑定移动电话号码也确实是大势所趋了. 国外的 app 也要 (例如 Telegram)
2023-08-14 10:09:52 +08:00
回复了 Songxwn 创建的主题 程序员 个人觉得 JB 家的新 UI 是真的好看
@Songxwn @dcsuibian
要不, 你们俩打一架?
@teli 为什么不建议
PowerDesigner 就可以.
你要是觉得 PD 比较古老你可以试试 Navicat. 也有这种功能.
不一定. 有些项目是必须要求先做数据库结构文档的. 例如一些给政府机构做的项目, 当地大数据局事后是可能会要产品的数据结构文档的. CodeFirst 的数据库大概率根本不做这种东西, 数据库结构文档就是实体类. 这种情况下还要现搞数据库结构文档. 所以还不如事先就做好 DBM, 然后从 DBM 直接生产数据库结构和实体类来的方便.
2023-08-11 10:00:54 +08:00
回复了 dengjunwen 创建的主题 Android 微信在安卓原生 13 后台流氓运行怎么办
因为不后台运行的话消息推送就收不到了. 我之前刷的原生 Android 就是把微信后台杀了的. 结果就是别人发消息我不打开微信的话根本收不到.
2023-08-09 21:06:10 +08:00
回复了 hahaFck 创建的主题 程序员 2023 年了,大家在用 jdk 的哪个版本?
JDK11 (然而我不是 Javaer
2023-08-08 14:48:12 +08:00
回复了 brader 创建的主题 程序员 官方有开放地震预警相关的 API 吗
@brader 他意思是你可以爬他们 api
2023-08-08 14:41:49 +08:00
回复了 brader 创建的主题 程序员 官方有开放地震预警相关的 API 吗
@dqzcwxb 你这才是连看都不看就发了...

这些都是气象地址灾害预警 山洪 泥石流 风暴之类的... 你提供的这些里没有哪个提供地震预警的...
2023-07-27 21:09:58 +08:00
回复了 QingquanBaby 创建的主题 程序员 不懂就问,静态网页管理动态数据如何实现
@placeholder 静默导出不太可能. 毕竟浏览器不可能背着用户写硬盘, 更何况程序自以为是保存的地方可能根本不是用户找得到的. 不过导出成 blob url 直接下载不是什么难事儿.

```
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta name="Content-Type" content="text/html;charset=utf-8">
<title>Local Storage Test</title>
<script language="javascript" type="text/javascript">
......
......
......

function exportContent(){
var targetControl = document.getElementById("valueInput");
var encoder = new TextEncoder();
var encodedValue = encoder.encode(targetControl.value);

var blob = new Blob([encodedValue], { type: "application/octet-stream" });

var ancher = document.createElement("a");
ancher.target = "_blank";
ancher.download = (Math.random() + "").replace('.', '') + ".txt";
ancher.href = URL.createObjectURL(blob);
ancher.click();
}

</script>
<style type="text/css">
......
......
......
</head>
<body onload="init()">
<div class="demo-area">
......
......
......
<button onclick="save()">保存</button>
&nbsp;
<button onclick="exportContent()">导出</button>
</div>
</body>
</html>
```

点导出就可以下载输入框里的文件.
所有支持 HTML 5 都可以.
不支持 HTML 5 的浏览器最多就是下载的文件变成了 GUID 没有后缀名罢了.
1 ... 4  5  6  7  8  9  10  11  12  13 ... 19  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1775 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 16:29 · PVG 00:29 · LAX 08:29 · JFK 11:29
Developed with CodeLauncher
♥ Do have faith in what you're doing.