请选择话题
发动态
综合 最新发布 最新回复
图文
列表
性价比mcu探讨
性价比最高的mcu是哪款 py32f002真的够稳定吗
开源硬件平台
前言在 Java 开发中,解析 JSON 是一个非常常见的需求。不管是和前端交互、调用第三方接口,还是处理配置文件,几乎都绕不开 JSON。1. 使用 Jackson:业界标配功能特点强大的序列化和反序列化:支持将 JSON 字符串转为 Java 对象,也支持将 Java 对象转换为 JSON。支持复杂结构:处理嵌套对象、数组、泛型等场景非常轻松。支持注解:如 @JsonIgnore、@JsonProperty 等,能精细控制序列化与反序列化的行为。性能高:Jackson 的性能非常出色,是很多企业级项目的首选。代码示例1. JSON 转对象(反序列化) import com.fasterxml.jackson.databind.ObjectMapper; public class JacksonExample { public static void main(String[] args) throws Exception { String json = "{"id":1,"name":"张三"}"; ObjectMapper objectMapper = new ObjectMapper(); User user = objectMapper.readValue(json, User.class); System.out.println(user.getName()); // 输出:张三 } } class User { private int id; private String name; // Getters 和 Setters 省略 } 2. 对象转 JSON(序列化) ini 代码解读 复制代码 User user = new User(); user.setId(1); user.setName("李四"); ObjectMapper objectMapper = new ObjectMapper(); String json = objectMapper.writeValueAsString(user); System.out.println(json); // 输出:{"id":1,"name":"李四"} 高级功能日期格式化:@JsonFormat(pattern = "yyyy-MM-dd")忽略字段:@JsonIgnore重命名字段:@JsonProperty("custom_name")优缺点优点缺点功能全面,支持复杂场景配置较多,学习成本稍高性能高,社区活跃,企业级项目首选过于强大,部分功能用不上丰富的注解支持,便于控制序列化行为库体积较大,对于小型项目略显笨重2. 使用 Gson:轻量好用功能特点轻量级:Gson 的设计非常简洁,代码量少,适合中小型项目。支持泛型:可以轻松解析带泛型的 JSON。注解控制:支持通过注解控制序列化行为,如 @Expose。易扩展:通过自定义序列化器和反序列化器,可以处理复杂的场景。代码示例1. JSON 转对象 import com.google.gson.Gson; public class GsonExample { public static void main(String[] args) { String json = "{"id":1,"name":"王五"}"; Gson gson = new Gson(); User user = gson.fromJson(json, User.class); System.out.println(user.getName()); // 输出:王五 } } 2. 对象转 JSON User user = new User(); user.setId(2); user.setName("赵六"); Gson gson = new Gson(); String json = gson.toJson(user); System.out.println(json); // 输出:{"id":2,"name":"赵六"} 高级功能忽略字段:@Expose @Expose private String name; 自定义序列化器/反序列化器: Gson gson = new GsonBuilder() .registerTypeAdapter(CustomClass.class, new CustomSerializer()) .create(); 优缺点优点缺点轻量级,简单易用,适合中小型项目性能稍逊于 Jackson学习曲线平滑,新手容易上手功能不如 Jackson 丰富提供良好的扩展能力复杂对象处理起来较为麻烦3. 使用 FastJSON:高性能功能特点性能优异:FastJSON 的解析速度非常快,适合大数据量场景。支持动态字段:可以轻松处理动态 JSON 数据。强大的类型支持:支持嵌套对象、泛型、数组等复杂结构。注解控制:类似 Jackson 和 Gson,支持注解控制字段的序列化和反序列化。代码示例1. JSON 转对象 import com.alibaba.fastjson.JSON; public class FastJsonExample { public static void main(String[] args) { String json = "{"id":1,"name":"小明"}"; User user = JSON.parseObject(json, User.class); System.out.println(user.getName()); // 输出:小明 } } 2. 对象转 JSON User user = new User(); user.setId(3); user.setName("小红"); String json = JSON.toJSONString(user); System.out.println(json); // 输出:{"id":3,"name":"小红"} 高级功能自动驼峰转下划线: JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; 动态字段解析: Map map = JSON.parseObject(json, Map.class); 优缺点优点缺点性能极高,解析速度快曾有历史安全漏洞的争议支持复杂的动态字段解析社区活跃度稍逊于 Jackson 和 Gson功能全面,适合大规模数据处理场景配置选项和 API 比较多,稍显复杂[需要看新机会的]1、顺便吆喝一句,技术大厂,待遇给的还可以,就是偶尔有加班(放心,加班有加班费)前、后端/测试,多地缺人,感兴趣的可以来试试~2、或者是西安的C语言,国企芯片刚,统招本科及以上学历就成,接受测试岗,能熟练使用C语言,有嵌入式、芯片、驱动开发经验优先——转载自作者:苏三说技术 链接:https://juejin.cn/post/7454963609861947392
加载失败
Json解析的这6种方案,真香!
开源硬件平台
开源项目:ESP32 多功能蓝牙小键盘

简介:多功能的5键ESP32蓝牙键盘,支持多个预设/定时器/节拍器等功能

开源链接:https://oshwhub.com/willitourt/esp32-multi-function-bluetooth-k
#蓝牙/蓝牙mesh# #RISC-V# #DIY设计#
加载失败
开源硬件平台
4.11有拼团买开发版的吗?评论区集合了,哥们 #嘉立创PCB#
开源硬件平台
为啥开源有些不用写代码的电路,他们用6p的typec,而不直接用4p,手工焊接,老是容易粘起来
开源硬件平台
lm2596-5输出电压不稳定。
这个电路参数有没有大神帮忙看看,配置错了嘛?输出电压会慢慢升高到10v左右,不是稳定的5V
加载失败
开源硬件平台
开源项目:2024电赛Ti杯三子棋

简介:24电赛三子棋,参加校赛最后评测出了点小问题。代码和机械都有很多要优化的地方,发出来抛转引玉,欢迎大家指点批评。

开源链接:https://oshwhub.com/xu_duoduo/san-zi-qi
#STM单片机#
加载失败
开源硬件平台
开源文章:山西机电职业技术学院电气控制科技协3月培训综合焊接练习板总结

简介:在3月期间电气控制科技协会进行了,以综合焊接练习板为案例的培训。

文章链接:https://oshwhub.com/article/summary-of-march-training-comprehensive-welding-practice-board-by-electrical-control-science-and-technology-association-of-shanx
#高校动态#
加载失败
开源硬件平台
签到失败是什么情况,更换浏览器、重启电脑都不行。这是要物理打断我的连续签到吗?
加载失败
开源硬件平台
开源文章:扬州大学广陵学院电协三月份PCB创意流水灯培训总结

简介:为提升 PCB 绘制能力与技巧,拓展艺术思维,活跃校园文化,扬州大学广陵学院电子信息协会开展了三月份PCB培训活动,并以PCB创意设计竞赛初赛为背景,吸引到了很多对PCB感兴趣的同学加入到此次培训中。

文章链接:https://oshwhub.com/article/summary-of-pcb-creative-water-lamp-training-in-march-by-guangling-college-of-yangzhou-university
#高校动态#
加载失败
开源硬件平台
前言最近在学习神经网络相关的知识,并做了一个简单的猫狗识别的神经网络,结果如图。虽然有点绷不住,但这其实是少数情况,整体的猫狗分类正确率已经来到 90% 了。本篇文章是给大家介绍一下我是如何利用前端如何做神经网络-猫狗训练的。步骤概览还是掏出之前那个步骤流程,我们只需要按照这个步骤就可以训练出自己的神经网络处理数据集定义模型神经网络层数每层节点数每层的激活函数编译模型训练模型使用模型最终的页面是这样的顺便吆喝一句,技术大厂,待遇给的还可以,就是偶尔有加班(放心,加班有加班费)前、后端/测试,多地有位置找到数据集,本次使用的是这个 www.kaggle.com/datasets/li… 2000 个猫图,2000 个狗图,足够我们使用(其实我只用了其中 500 个,电脑跑太慢了)由于这些图片大小不一致,首先我们需要将其处理为大小一致。这一步可以使用 canvas 来做,我统一处理成了 128 * 128 像素大小。 const preprocessImage = (img: HTMLImageElement): HTMLCanvasElement => { const canvas = document.createElement("canvas"); canvas.width = 128; canvas.height = 128; const ctx = canvas.getContext("2d"); if (!ctx) return canvas; // 保持比例缩放并居中裁剪 const ratio = Math.min(128 / img.width, 128 / img.height); const newWidth = img.width * ratio; const newHeight = img.height * ratio; ctx.drawImage( img, (128 - newWidth) / 2, (128 - newHeight) / 2, newWidth, newHeight ); return canvas; }; 这里可能就有同学要问了:imooimoo,你怎么返回了 canvas,不应该返回它 getImageData 的数据点吗。我一开始也是这样想的,结果 ai 告诉我,tfjs 是可以直接读取 canvas 的,牛。tf.browser.fromPixels() // 可以接受 canvas 作为参数将其处理为 tfjs 可用的对象 // 加载单个图片并处理为 tfjs 对应格式 const loadImage = async (category: "cat" | "dog", index: number): Promise => { const imgPath = `src/pages/cat-dog/image/${category}/${category}.${index}.jpg`; const img = new Image(); img.src = imgPath; await new Promise((resolve, reject) => { img.onload = () => resolve(img); img.onerror = reject; }); return { path: imgPath, element: img, tensor: tf.browser.fromPixels(preprocessImage(img)).div(255), // 归一化 label: category === "cat" ? 0 : 1, }; }; // 加载全部图片 const loadDataset = async () => { const images: ImageData[] = []; for (const category of ["cat", "dog"]) { for (let i = 1000; i { const model = tf.sequential({ layers: [ // 最大池化层:降低特征图尺寸,增强特征鲁棒性 tf.layers.maxPooling2d({ inputShape: [128, 128, 3], // 输入形状 [高度, 宽度, 通道数] poolSize: 2, // 池化窗口尺寸 2x2 strides: 2, // 滑动步长:每次移动 n 像素,使输出尺寸减小到原先的 1/n }), // 卷积层:用于提取图像局部特征 tf.layers.conv2d({ filters: 32, // 卷积核数量,决定输出特征图的深度 kernelSize: 3, // 卷积核尺寸 3x3 activation: "relu", // 激活函数:修正线性单元,解决梯度消失问题 padding: "same", // 边缘填充方式:保持输出尺寸与输入相同 }), // 展平层:将多维特征图转换为一维向量 tf.layers.flatten(), // 全连接层(输出层):进行最终分类 tf.layers.dense({ units: 2, // 输出单元数:对应猫/狗两个类别 activation: "softmax", // 激活函数:将输出转换为概率分布 }), ], }); // 编译模型,参数基本写死这几个就对了 model.compile({ optimizer: "adam", loss: "categoricalCrossentropy", metrics: ["accuracy"], }); console.log("模型架构:"); model.summary(); return model; }; 这里实际上只需要额外注意两点:卷积层的激活函数 activation: "relu",这里理论上是个非线性激活函数就行。但是我个人更喜欢 relu,函数好记,速度和效果又不错。输出层的激活函数 activation: "softmax",由于我们做的是分类,最后必须是这个。训练模型训练模型可以说的就不多了,也就是提供一下你的模型、训练集就可以开始了。这里有俩参数可以注意下epochs: 训练轮次validationSplit: 验证集比例,用于测算训练好的模型准确程度并优化下一轮的模型 // 训练模型 const trainModel = async ( model: tf.Sequential, xData: tf.Tensor4D, yData: tf.Tensor2D ) => { setTrainingLogs([]); // 清空之前的训练日志 await model.fit(xData, yData, { epochs: 10, // 训练轮数 batchSize: 4, validationSplit: 0.4, callbacks: { onEpochEnd: (epoch, logs) => { if (!logs) return; setTrainingLogs((prev) => [ ...prev, { epoch: epoch + 1, loss: Number(logs.loss.toFixed(4)), accuracy: Number(logs.acc.toFixed(4)), }, ]); }, }, }); }; 整体页面基本就是这样了,稍微写一下页面,基本就完工了总结别慌,神经网络没那么可怕,核心步骤就那几步,冲冲冲。源码:github.com/imoo666/neu…——转载自作者:imoo
加载失败
当一个前端学了很久的神经网络...
开源硬件平台
白嫖党
兄弟们,是不是有些白嫖党做的太过分了。嫖了太多资源。所以现在小程序签到没有彩色丝印卷,连小助手的pcb卷都要扫码验证身份了。[晕][晕][晕]#畅聊专区#
加载失败
开源硬件平台
开源文章:合肥大学电子爱好者协会---嘉立创EDA时钟训练营

简介:合肥大学电子爱好者协会---嘉立创EDA时钟训练营

文章链接:https://oshwhub.com/article/hefei-university-electronic-fans-association-jialichuang-eda-clock-training-camp
#高校动态#
加载失败
开源硬件平台
开源文章:广师大汽院智能车实验室3月新人培训

简介:面向河源校区培训,以平衡小车项目激发同学学习兴趣。

文章链接:https://oshwhub.com/article/guangzhou-normal-university-auto-institute-smart-car-laboratory-march-new-person-training
#高校动态#
加载失败
开源硬件平台
开源文章:三月份安阳师范学院嘉立创联合实验室培训

简介:对准备单片机学习的同学进行51单片机最小系统的培训,这样更有利于他们更好的学习单片机了解内部结构

文章链接:https://oshwhub.com/article/march-anyang-normal-university-jialichuang-joint-laboratory-training
加载失败
开源硬件平台
开源文章:西安交大城院--3月校园讲师培训总结

简介:西安交通大学城市学院3月校园讲师培训总结

文章链接:https://oshwhub.com/article/xi-an-jiaotong-university-city-college-summary-of-instructor-training-in-march
#高校动态#
加载失败
开源硬件平台
开源文章:黄山学院--智能装备实训中心2025年3月项目培训总结(USB 2.0 HUB)

简介:简介:2025年3月份成功开展了USB2.0集线器项目的培训工作,主要带领大家练习嘉立创EDA的使用及相关电路设计规则。本次活动共有20余名同学参加,团队内收到项目11个,焊接成品共9个。

文章链接:https://oshwhub.com/article/huangshan-university-intelligent-equipment-training-center-march-2025-project-training-summary-usb20hub
#高校动态#
加载失败
开源硬件平台
开源文章:南阳科技职业学院第二次培训(蝴蝶呼吸灯)

简介:借鉴 https://oshwhub.com/jy2054289596/streamed-butterfly-shadow 这个开源工程

文章链接:https://oshwhub.com/article/nanyang-vocational-college-of-science-and-technology-second-training-butterfly-breathing-light
#高校动态#
加载失败
开源硬件平台
开源文章:西安培华学院——USB拓展坞项目训练

简介:实用的进阶项目来啦!

文章链接:https://oshwhub.com/article/xi-an-peihua-university-usb-outward-bound-project-training
#高校动态#
加载失败
开源硬件平台
【可重复触发】立创EDA闪退bug
发现个立创eda的bug ,版本 V2.2.37 具体描述如下, 在工程中PCB视图,打开3D焊接辅助工具, 先点击“位号不聚合”, 再点击“位号聚合”, 会先闪退焊接辅助工具,跳转到PCB视图,然后整个软件处于卡死状态, 无鼠标点击事件响应,只能关闭整个工程, 在线模式,半离线,以及多个工程之间都是如此。 2025-4-1 这是个愚人节玩笑嘛?---------mmk #嘉立创EDA#
加载失败
加载失败
开源硬件平台
优质硬件创作分享平台
加载失败
加载失败
加载失败
推荐话题 换一批
#DIY设计#
#创享2025#
#嘉立创PCB#
#畅聊专区#
#嘉立创#
#嘉立创免费3D打印#
#嘉立创3D打印#
#嘉立创3D免费打样券#
查看更多热门话题
打赏记录
涨分锦囊 完成每日任务获得社区积分
打赏帖子(0/10)
+10 积分
待完成
点赞帖子(0/3)
+1 积分
待完成
评论帖子(0/3)
+2 积分
待完成
发布帖子(0/1)
+3 积分
待完成
修改头像(0/1)
+10 积分
去完成
粤公网安备44030002004666号 · 粤ICP备2023121300号 · 用户协议 · 隐私政策 · 侵权举报 · ISO/IEC · Copyright © 2024 嘉立创社区版权所有
服务热线:18682363881 ·  服务时间:周一至周六 9::00-18:00 · 联系地址:中国·深圳(福田区商报路奥林匹克大厦27楼) · 媒体沟通:pr@jlc.com · 集团介绍
移动社区