微信小程序给json数据再添加新的字段

**

简单粗暴,看下面代码,其实与常规添加方法类似

**
在这里插入图片描述

编辑 | sishen
来源 | 前端兔
审核 | @前端兔

关注公众号查看更多前端知识分享~~
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Bootsrap 4.0框架改写全部样式。 ■基于FLex弹性布局重写前端(OA平台因要支持传统业务暂不涉及)。 ■提供全的Bootstrap 4.0技术文档,并获得Bootstrap官方认同,访问http://code.z01.com/v4 ■前后端全面引入scss(sass)技术,与Bootstrap官方保持一致(作为国内首家引入Bootstrap的CMS厂商,一直推动基产品的国内实施和普及教育)。 ■Markdown编辑器,可访问https://www.73ic.com/Plugins/markdown/ 体验。 ■推出全的示范站点和云门户www.73i.com (beta)。 ■支持批量SSL证书部署模式 。 ■修正节日LOGO为SVG矢量。 ■修正搜索样式。 ■改进内置搜索表现,提供更多参数。 ■提供丰富的细致搜索。 ■在搜索主页提供svg代码式嵌入示范。 ■提供SASS(SCSS)引用规范 。 ■基于rem单位进行编程。 ■修正2018年节日功能-全部加载SVG矢量图形。 ■改进前端模板为绿色主题。 ■文件引用从单http改为http、https自适应引用方式。 ■提供了.map支持(Map技术介绍https://www.z01.com//help/web/3208.shtml)。 ■修复论坛(贴吧)发帖审核状态码从1改为99,与全局统一。 ■后台启动页配置-自由决定初始首屏界面。 ■增加小程序模块,快速开发小程序。 ■增加:云端建站功能,全的在线拖拽建站。 ■增加:数据表自由导出为Excel(扩展--数据导出为Excel),自由导出您的任何意表单数据,对于站长业说可以更好的管理自主数据。 ■建站:版块表单功能,提交的表单后台存储 ■建站:模板增加预览功能(PC,iPad,iPhone) ■建站:使用的编辑器替代ckeditor ■建站:版块数据管理功能(content|image等) ■修复:UEditor编辑器,图片上传Bug ■修复:模型字段,设置为前端不显示时,后台内容管理也不显示Bug ■修复:用户中心--内容--无法添加商品Bug ■修复:会员Excel导入Bug ■增加:扩展邮件发送模块,会记录邮件模板,与发送日志(目标用户是否成功接收) ■增加:建|修改标签,数据表选择--支持下拉筛选 ■扩展:能力中心--增加[@我的]筛选 ■扩展:增加用户列表JS插件 ■扩展:优化了AJAX单文件上传组件,支持一个页面放置多个上传组件 ■增加:BIS模块 ■扩展:LED设计模块,支持动画等效果 ■修改:Boot4标签解析,增加font字体,基于逐浪字库的高端字体图标技术。 ■增加:Bis增加订单补录功能 ■修复:邮件页面支持name与title字段传参 ■优化:优化调整商品逻辑层 ■增加:管理员,用户AJAX登录,启用加密传输 ■扩展:微信小程序接口,增加安全验证(避免被其他人调用接口),扩展购物车,用户等模块 ■增加:库选字段--下拉选单被遮住Bug,并增加判断,避免JS重复加载 ■增加:库选字段增加筛选功能 ■增加:增加RSA加密方式,用于前端加密传输(暂只用于用户登录页) ■安全:增加AntiXSS插件,专用于处理用户提交的HTML,过滤危险标签 ■修复:商品修改,精品属性丢失Bug ■安全:增强了底层标签模块的安全检测 ■扩展:地图字段,简洁--完全版支持互转 ■增加:扩展虚拟币支持图片凭证 ■增加:用户画像功能 ■扩展:增加最大用户注册数限制 ■扩展:订单打印,增加显示商品购买时价格 ■扩展:用户信息(UserBase)增加移动设备专用页面 ■修复:订单前往付款,状态检测不正确Bug ■扩展:多选项字段,增加省份大学二级联动 ■增加:标签查询数据转换为json功能 { ZL:Json} ■扩展:按需修改当前日期标签 ■扩展:地图增加经玮度定位,增加经玮度显示 ■修复:首页左边栏按钮Bug ■修复:不能迁移到根节点Bug ■扩展:按需修改购物车发票逻辑 ■增加:会员中心管理发票模板功能(最多6个) *购物车购买时,发票信息会自动存为模板 *用户中心可维护发票信息 ■修复:节点删除入回收站Bug(批量删除不入回收站,不显示子节点) ■增加:扩展发票模块,抽取最近的五次不重复的发票数据 ■扩展:增加内容置顶与置顶到期时间字段, ■移除:内容模型已不用的字段(Cast_File,Pronum,ProWeek,BidMoney,BidType,IsBid,OrderClass,ComplianceUserList) ■修复:贴吧图标,与图片解析标签Bug ■增加:内容按用户组设计访问权限 ■扩展:发票增加分类功能 ■扩展:按需改写有问必答模块 ■修复:有问必答--用户中心筛选Bug ■修复:多文件上传,被禁止的上传的文件(exe等危险文件)显示Bug ■扩展:使用版本Jquery.js(升级到全的v3.2.1) ■修复:节点链接Bug ■修复:单页--只允许首页生成 ■修复:扩展--运行SQL语句增加二次密码校验 ■扩展:Logo设计,下载图片时会自动添加水印 ■修复:因为特殊字符,导致word无法生成Bug ■按需扩展龙悦云收银模块 ■修复:中文无法输入Bug ■扩展:按需优化POS收银代码,增强稳定性,并可记录异常 ■扩展:支持打印份数,与USB打印机 ■按需扩展金赣物联网远程视频与数据监控模块。 ■增加:PayPal即时到账支付 ■增加:初步重写了CRM模块 ■扩展:增加导入辅助类,用于辅助Excel数据的导入 ■修改:域名归并与强制https,改为301跳转 ■扩展:增加微信带参二维码接口与相关事件处理 ■修复:有问必答--图片附件Bug ■修复:标签--数据表,链接错误 ■扩展:商城模块按需扩展 ■扩展:后台权限验证机制完成迁移 ■修复:手机注册,验证码Bug ■增加:初步确定HoloLens 2D程序开发方式(UWP+WebView)以及3D仿生开发模块,并推出全的混合现实门户http://pano.z01.com 以及其它重要更,立即下载,马上获得2018最最牛最强大的web与移动开发中间件↓ MD5: 210E59B944C26B9BA0CE513ED26AECCE SHA1: 704F7754DC2B30036B993E9F12CDDFBA9BC25F7F CRC32: D58F68C1
通过Python爬虫自建豆瓣电影API.zip 项目简介 在开发微信小程序「影库MDb」时,使用了豆瓣api来获取电影信息,后来由于豆瓣apikey失效了,小程序就无法正常访问,而个人主体貌似无法申请官方apikey,所以自己抽时间通过爬虫的方式写了个电影接口。这里把项目中的电影接口部分单独提取出来,分享给有需要的朋友。 本项目使用Python Flask框架搭建,采用爬取豆瓣官网的方式,获取并处理电影信息,返回的Json数据,便于小程序使用。 主要实现的功能有获取电影列表,获取电影信息、图片、演员等,以及获取影人信息、图片、作品,具体可参考api文档。 开发技术 编程语言:Python 3.7 WEB框架:Flask WSGI服务器:Waitress 使用方法 先部署环境,安装依赖。 pip install -r requirements.txt 直接运行run.py即可,我设置的5000端口,可改为其它,部署后可通过nginx来代理。 python run.py 成功运行之后可以通过 http://localhost:5000+对应URL和参数 来获取数据,URL和参数详见API文档。 建议直接部署使用,因为每次请求都要现爬取并处理数据,占用资源,响应比较慢,并且爬虫受限。可以在此基础上进行开发,将数据保存到本地数据库,然后定期更数据。如果要部署使用,建议在config目录的配置文件里的HEADERS和PROXIES加上对应配置,来解决豆瓣爬虫限制。 使用建议 豆瓣官网有反爬机制,单ip有访问限制,所以建议增加ip代理池。 部分影视不登录豆瓣账号无法查看信息,所以建议增加cookie。 建议将爬取处理好的数据保存到本地数据库(推荐mongodb),处理逻辑是:访问接口->查询本地数据库->有返回数据,没有现爬数据并存储。 如果将数据存到本地,电影的一些数据会变化,建议添加个时间字段,用于定期更数据。 由于我是在Windows服务器运行,使用的是Waitress,Linux建议更换其它WSGI服务器。
2020.04.02 F 修复 32 位系统无法编译小程序、提示重启耗时过久的问题 反馈详情 F 修复 使用 cli 打开 project.config.json 中 projectname 为中文的项目时会一直卡在初始化应用通信能力的问题 反馈详情 F 修复 ts 项目编译前命令无限执行的问题 反馈详情 F 修复 PC 端模拟器的 touchend 事件回调参数 changedTouches 为空的问题 反馈详情 2020.03.25 更说明 A 增 云开发控制台支持开通按量付费 A 增 云开发支持数据库备份与回档(还原)详情 A 增 支持小程序自动化多帐号调试 A 增 显示灰度中的基础库以及基础库支持的客户端版本 详情 A 增 下发测试基础库 详情 A 增 支持模拟 API 的返回内容 详情 A 增 支持同时重命名多个同名的文件 A 增 真机调试出现异常时,可手动操作重试 A 增 增加工具加载 loading 展示 A 增 模拟器支持终止 A 增 支持小游戏代码补全 U 优化 模拟器工具栏及状态栏界面 U 优化 云开发控制台监控图表展示 U 优化 模拟器添加边框 反馈详情 U 优化 更命令行和 HTTP v2 版本 详情 F 修复 修改 cloudFunctionRoot 会出现文件找不到的问题 反馈详情 F 修复 不能正确打开已被删除文件夹的项目的问题 F 修复 点击菜单工具栏管理无反应的问题 F 修复 工具外修改项目配置 cli 上传不生效的问题 F 修复 工具预览/上传提示文件已经存在的问题 反馈详情 F 修复 调试器放大会导致 inspect 按钮样式异常的问题 F 修复 模拟器工具栏样式异常 F 修复 wx.addPhoneContact时顶部按钮显示错误的问题 反馈详情 F 修复 标题栏文字过长覆盖胶囊按钮的问题 F 修复 文件系统读取代码包内文件规则与真机不一致的问题 F 修复 关闭多帐号调试窗口 tabbar 内的 icon 无法加载的问题 反馈详情 F 修复 预览上传错误提示无效的 json 文件 反馈详情 F 修复 使用非等宽字体时光标可能错位的问题 F 修复 某些项目可能出现 wxml not found 的问题 F 修复 真机调试 Appdata 和 WXML 面板可能显示空白的问题 F 修复 弹出模拟器时 getMenuButtonBoundingClient 调用结果为空的问题 A 增 支持小程序自动化截图功能 A 增 编辑器面包屑导航条支持自定义快捷导航 A 增 模拟小程序进程销毁重启 A 增 编辑器行内错误和警告提示 A 增 Mac 和 Windows 微信的模拟器类型 U 优化 1.02.1912261 的安装包结构 U 优化 MacOS 版关闭项目窗口时,显示项目列表窗口 U 优化 插件开发模式下 miniprogramRoot 下 app.json 中插件 provider 与项目 appid 一致时,version 必须为 "dev" F 修复 1.02.1912261 引入的多帐号调试 tabBar 图标无法加载的问题 F 修复 1.02.1912261 引入的 jsserverRoot 目录右键菜单缺失部分选项的问题 F 修复 公众号网页调试中,Base64 图片无法通过调试器打开的问题 反馈详情 F 修复 cli 调用自动预览无法使用自定义编辑条件的问题 F 修复 Windows 版无法使用录音功能的问题 F 修复 插件开发模式下,插件页面配置不生效的问题 F 修复 小游戏开放数据域使用增强编译报错的问题 F 修复 Windows 版某些情况下无法显示项目窗口的问题 F 修复 切换 cloudfunctionsRoot 无法同步云函数的问题 反馈详情 F 修复 Wxml 面板丢失 text 标签子节点的问题 F 修复 上传时文件体积大小提示错误问题 反馈详情 F 修复 使用非等宽字体时光标可能错位的问题 F 修复 文件系统 api 读取代码包内文件规则与真机不一致的问题 A 增 编辑器全局替换 A 增 编辑器分栏 A 增 编辑器文件多选操作和拖动到文件夹 A 增 编辑器多选操作和拖动到文件夹 A 增 编辑器代码大纲 A 增 编辑器文件对比 A 增 选取 android 设备上的 profile 文件进行分析 详情 A 增 WXML 面板支持自定义组件数据查看与实时修改 A 增 WXML 面板支持使用键盘 (上下左右) navigate the DOM tree A 增 WXML 面板
参加比赛的作品,开发周期一个月,使用了 Wafer2 框架,后台采用腾讯云提供的 Node.js SDK 接入对象存储 API ,前端核心代码实现了类似于图片编辑器的功能,支持图片和文字的移动、旋转、缩放、生成预览图以及编辑状态的保存,动画部分采用 CSS 动画实现小程序中的模态输入框部分使用了自己封装的 InputBox 组件代码已移除 AppId 等敏感信息,可自行添加自己的 AppId 和 AppSecret 以配置后台环境,实现登录测试,详细添加方法见下文「使用方法」,若本地运行可通过修改 app.json 文件中 page 字段的顺序来查看不同页面微信小程序定制需求请联系作者微信:aweawds (注明来意)效果展示      使用方法首先点击右上角 Star ʕ •ᴥ•ʔ获取Demo代码执行 git clone https://github.com/goolhanrry/Weapp-Demo-LemonJournal.git或 点击此处 下载最版本的代码解压后在微信开发者工具中打开 Weapp-Demo-LemonJournal 文件夹即可如需进行登录测试,还要执行以下步骤准备好自己的 AppId 和 AppSecret(可在微信公众平台注册后获取)在 project.config.json 的 appid 字段中填入 AppId在 /client/utils/util.js 中相应位置填入 AppId 和 AppSecret在微信开发者工具中重导入整个项目,上传后台代码后编译运行即可核心代码组件的移动、旋转和缩放主要思路是把  标签(对应图片)和  标签(对应文字)封装在同一个自定义组件  中,通过对外暴露的 text 变量是否为空来进行条件渲染,然后绑定 onTouchStart() 、onTouchEnd() 和 onTouchMove() 三个事件来对整个组件的位置、角度、大小、层级以及 “旋转” 和 “移除” 两个按钮的行为进行操作onTouchStart: function (e) {     // 若未选中则直接返回     if (!this.data.selected) {         return     }     switch (e.target.id) {         case 'sticker': {             this.touch_target = e.target.id             this.start_x = e.touches[0].clientX * 2             this.start_y = e.touches[0].clientY * 2             break         }         case 'handle': {             // 隐藏移除按钮             this.setData({                 hideRemove: true             })             this.touch_target = e.target.id             this.start_x = e.touches[0].clientX * 2             this.start_y = e.touches[0].clientY * 2             this.sticker_center_x = this.data.stickerCenterX;             this.sticker_center_y = this.data.stickerCenterY;             this.remove_center_x = this.data.removeCenterX;             this.remove_center_y = this.data.removeCenterY;             this.handle_center_x = this.data.handleCenterX;             this.handle_center_y = this.data.handleCenterY;             this.scale = this.data.scale;             this.rotate = this.data.rotate;             break         }     } }, onTouchEnd: function (e) {     this.active()     this.touch_target = ''     // 显示移除按钮     this.setData({         removeCenterX: 2 * this.data.stickerCenterX - this.data.handleCenterX,         removeCenterY: 2 * this.data.stickerCenterY - this.data.handleCenterY,         hideRemove: false     })     // 若点击移除按钮则触发移除事件,否则触发刷数据事件     if (e.target.id === 'remove') {         this.triggerEvent('removeSticker', this.data.sticker_id)     } else {         this.triggerEvent('refreshData', this.data)     } }, onTouchMove: function (e) {     // 若无选中目标则返回     if (!this.touch_target) {         return     }     var current_x = e.touches[0].clientX * 2     var current_y = e.touches[0].clientY * 2     var diff_x = current_x - this.start_x     var diff_y = current_y - this.start_y     switch (e.target.id) {         case 'sticker': {             // 拖动组件则所有控件同时移动             this.setData({                 stickerCenterX: this.data.stickerCenterX   diff_x,                 stickerCenterY: this.data.stickerCenterY   diff_y,                 removeCenterX: this.data.removeCenterX   diff_x,                 removeCenterY: this.data.removeCenterY   diff_y,                 handleCenterX: this.data.handleCenterX   diff_x,                 handleCenterY: this.data.handleCenterY   diff_y             })             break         }         case 'handle': {             // 拖动操作按钮则原地旋转缩放             this.setData({                 handleCenterX: this.data.handleCenterX   diff_x,                 handleCenterY: this.data.handleCenterY   diff_y             })             var diff_x_before = this.handle_center_x - this.sticker_center_x;             var diff_y_before = this.handle_center_y - this.sticker_center_y;             var diff_x_after = this.data.handleCenterX - this.sticker_center_x;             var diff_y_after = this.data.handleCenterY - this.sticker_center_y;             var distance_before = Math.sqrt(diff_x_before * diff_x_before   diff_y_before * diff_y_before);             var distance_after = Math.sqrt(diff_x_after * diff_x_after   diff_y_after * diff_y_after);             var angle_before = Math.atan2(diff_y_before, diff_x_before) / Math.PI * 180;             var angle_after = Math.atan2(diff_y_after, diff_x_after) / Math.PI * 180;             this.setData({                 scale: distance_after / distance_before * this.scale,                 rotate: angle_after - angle_before   this.rotate             })             break         }     }     this.start_x = current_x;     this.start_y = current_y; }编辑状态的保存一篇手帐包含的组件类型包括 sticker(软件自带的贴纸)、image(用户上传的图片)和 text(自定义文字)三种,全部保存在一个如下格式的 json 对象中,每个独立组件都包含了一个不重复的 id 以及相关的信息,保存时由客户端生成该对象并编码成 json 字符串存储在数据库,恢复编辑状态时通过解析 json 字符串获得对象,再由编辑页面渲染{     "backgroundId": "5",                                        背景图id     "assemblies": [         {             "id": "jhjg",                                       组件id             "component_type": "image",                          组件类型(自定义图片)             "image_url": "https://example.com/jhjg.png",        图片地址             "stickerCenterX": 269,                              中心横坐标             "stickerCenterY": 664,                              中心纵坐标             "scale": 1.7123667831396403,                        缩放比例             "rotate": -3.0127875041833434,                      旋转角度             "wh_scale": 1,                                      图片宽高比             "z_index": 19                                       组件层级         },         {             "id": "gs47",             "component_type": "text",                           组件类型(文字)             "text": "test",                                     文字内容             "stickerCenterX": 479,             "stickerCenterY": 546,             "scale": 1.808535318980528,             "rotate": 29.11614626607893,             "z_index": 10         },         {             "id": "chjn",             "component_type": "sticker",                        组件类型(贴纸)             "sticker_type": "food",                             贴纸类型             "sticker_id": "1",                                  贴纸id             "image_url": "https://example.com/weapp/stickers/food/1.png",             "stickerCenterX": 277,             "stickerCenterY": 260,             "scale": 1.3984276885130673,             "rotate": -16.620756913892055,             "z_index": 5         }     ] }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值