js 中 复杂json 组装 实例通用模式

js 中 复杂json 组装 实例

  • 目录
    • 概述
      • 需求:
    • 设计思路
    • 实现思路分析
      • 1.js 中 复杂json 组装 实例
      • 2.js 中 复杂json 动态 组装 实例
      • 3.嵌套数组
  • 参考资料和推荐阅读

)

Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.

目录

概述

上一篇提到http通信中,最重要的是就是组包和解析了,其他都是模板化的,而这其中又非常重要。
重点说一下组包模式

需求:

设计思路

在这里插入图片描述

实现思路分析

1.js 中 复杂json 组装 实例

这里是一个示例,展示了如何在 JavaScript 中组装一个复杂的 JSON 对象:

// 创建一个空的 JSON 对象
var jsonData = {};// 添加基本信息
jsonData.name = "John Smith";
jsonData.age = 30;
jsonData.email = "john@example.com";// 添加一个数组
jsonData.skills = ["JavaScript", "HTML", "CSS"];// 添加嵌套的 JSON 对象
jsonData.address = {street: "123 Main St",city: "New York",state: "NY",country: "USA"
};// 添加一个复杂的嵌套数组
jsonData.education = [{degree: "Bachelor's",major: "Computer Science",university: "Harvard University"},{degree: "Master's",major: "Information Technology",university: "Stanford University"}
];// 序列化为 JSON 字符串
var jsonString = JSON.stringify(jsonData);console.log(jsonString);

输出结果为:

{"name": "John Smith","age": 30,"email": "john@example.com","skills": ["JavaScript", "HTML", "CSS"],"address": {"street": "123 Main St","city": "New York","state": "NY","country": "USA"},"education": [{"degree": "Bachelor's","major": "Computer Science","university": "Harvard University"},{"degree": "Master's","major": "Information Technology","university": "Stanford University"}]
}

这个示例中,我们首先创建一个空的 JSON 对象 jsonData,然后逐步添加字段和值。其中,skills 是一个数组,address 是一个嵌套的 JSON 对象,education 是一个复杂的嵌套数组。

最后,我们使用 JSON.stringify() 方法将 jsonData 对象序列化为 JSON 字符串,并打印到控制台。

2.js 中 复杂json 动态 组装 实例

在JavaScript中,可以使用对象和数组来表示复杂的JSON数据。以下是一个动态组装复杂JSON的示例:

// 创建一个空的JSON对象
var jsonData = {};// 动态添加属性和值
jsonData.name = "John";
jsonData.age = 25;// 动态添加一个包含多个属性的对象
jsonData.address = {street: "123 Main St",city: "New York",state: "NY"
};// 动态添加一个包含多个对象的数组
jsonData.friends = [];
var friend1 = { name: "Mike", age: 30 };
var friend2 = { name: "Lisa", age: 28 };
jsonData.friends.push(friend1);
jsonData.friends.push(friend2);// 打印整个JSON对象
console.log(jsonData);// 将JSON对象转换为字符串
var jsonString = JSON.stringify(jsonData);
console.log(jsonString);

这个示例演示了如何使用JavaScript动态组装一个包含多个级别和复杂结构的JSON对象。首先创建一个空的JSON对象,然后使用点语法和赋值语句来动态添加属性和值。还可以动态添加包含多个属性的对象和包含多个对象的数组。最后,可以使用JSON.stringify()方法将JSON对象转换为字符串。

{"name": "John","age": 25,"address": {"street": "123 Main St","city": "New York","state": "NY"},"friends": [{"name": "Mike","age": 30}, {"name": "Lisa","age": 28}]
}

请注意,这只是一个示例,您可以根据自己的需求和数据结构进行修改和扩展。

3.嵌套数组

// 创建一个空的JSON对象
var jsonData = {};// 动态添加属性和值
jsonData.name = "John";
jsonData.age = 25;// 动态添加一个包含多个属性的对象
jsonData.address = {street: "123 Main St",city: "New York",state: "NY"
};// 动态添加一个包含多个对象的数组
jsonData.friends = [];
var friend1 = { name: "Mike", age: 30 };
var friend2 = { name: "Lisa", age: 28 };
jsonData.friends.push(friend1);
jsonData.friends.push(friend2);var coarray = [];
var h2sarray=[];
var cof = { day: "13", age: 30 };
var hs2f = { deviceparameters: "Lisa", age: 28 };coarray.push(cof)
h2sarray.push(hs2f)var data = {co: coarray,hs2: h2sarray,
};jsonData.object=[]
jsonData.object.push(data)
//动态增加嵌套数组// 打印整个JSON对象
console.log(jsonData);// 将JSON对象转换为字符串
var jsonString = JSON.stringify(jsonData);
console.log(jsonString);

结果:

{"name": "John","age": 25,"address": {"street": "123 Main St","city": "New York","state": "NY"},"friends": [{"name": "Mike","age": 30}, {"name": "Lisa","age": 28}],"object": [{"co": [{"day": "13","age": 30}],"hs2": [{"deviceparameters": "Lisa","age": 28}]}]
}

一般都是设计个对象不断给与属性赋值,其包含,基本属性,对象属性,数组属性,对象数组属性,嵌套对象数组形式基本OK
前端HTTP 传参组装报文基本就解放了

参考资料和推荐阅读

参考资料*
官方文档
开源社区
博客文章
书籍推荐
1.

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!同时,期望各位大佬的批评指正~,如果有兴趣,可以加文末的交流群,大家一起进步哈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/345025.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot整合人大金仓数据库KingBase

1 去KingBase官网下载驱动jar包 2 将解压得到的所有jar包放置在libs目录下&#xff08;没有就新建一个目录&#xff09; 3 在pom文件添加相关依赖 <!--添加KingBase所需要的依赖--> <dependency><groupId>com.kingbase</groupId><artifactId>kin…

Stronghold Village

有了近2000个预制件和大量资产,您可以用基本的或先进的模块化预制件建造您的设防城镇或梦幻村庄,其中有许多定制选项和大量道具和物品 通过这个巨大的资源库,你可以创建村庄、城市、要塞、农村建筑、大教堂、城堡等。为你的环境提供高水平的细节,你可以创建外部装饰建筑,也…

普通人想通过抖音赚钱要先知道这4点

1.变现方式 想做抖音首先要想好变现路径以及通过什么方式变现。做抖音就是在经营某一类人群&#xff0c;因为人群绑定了精准标签&#xff0c;系统推送的精准又绑定了变现。所以要明确你经营的目标人群是谁&#xff0c;你在做谁的生意&#xff0c;你要赚谁的钱。他们的年龄、收…

UL2034详细介绍UL 安全单站和多站一氧化碳报警器标准

在介绍相关标准之前先介绍一下UL认证和UL测试报告的区别&#xff0c;检测认证行业6年老司机 UL认证是自愿性的认证&#xff0c;需要检测产品和审核工厂&#xff0c;每个季度审核一次&#xff0c;费用高、时间久&#xff0c;而且审厂非常的严格。 UL测试报告是根据产品选用相应…

Modbus协议学习第一篇之基础概念

什么是“协议” 大白话解释&#xff1a;协议是用来正确传递消息数据而设立的一种规则。传递消息的双方&#xff08;两台计算机&#xff09;在通信时遵循同一种协议&#xff0c;即可理解彼此传递的消息数据。 Modbus协议模型 Modbus协议模型较为简单&#xff0c;使用一种称为应用…

vue3dLoader Cannot read properties of null (reading ‘setCrossOrigin‘)“这个报错怎么解决?

默认情况下crossOrigin默认值是“anonymous” 如果出现报错的情况 请设置crossOrigin为空字符串即可。如&#xff1a; <vue3dLoader crossOrigin""> 相关阅读 推荐&#xff1a;vue-3d-loader支持.dae/.fbx/.gltf/.glb/.obj/.ply/.stl/.json&#xff0c;并支…

红酒和果酒推荐

一、红酒 首先&#xff0c;说一下大家常见的几十元红酒和贵的红酒的区别。 1.品牌价值。 2.工艺要求。 3.主要原料优质与否。几十元的红酒&#xff1a; 工艺要求没有高档红酒要求高&#xff0c;另外用的葡萄是榨的汁&#xff0c;品牌价值低&#xff08;目前市场品牌推广的费…

thinkphp6报错Driver [Think] not supported.

thinkphp6报错Driver [Think] not supported. 问题解决方法测试 问题 直接使用 View::fetch();渲染模板报错 解决方法 这个报错是由于有安装视图驱动造成的 运行如下命令安装即可 composer require topthink/think-view官方文档中是这么写的 视图功能由\think\View类配合视…

Eclipse插件UCdetector清理无用JAVA代码

下载插件 UCDetector - Browse /ucdetector at SourceForge.net 目前最新版本是2017年的2.0.0 保存 Eclipse/dropins 重启 操作 在项目上右键

DDNS-GO配置使用教程

环境&#xff1a;openwrt 下载地址&#xff1a;Releases jeessy2/ddns-go GitHub 下载 ssh至openwrt根目录&#xff0c;根据你的处理器选择要下载的版本&#xff0c;我是路由器&#xff0c;选择的是 ddns-go_5.7.1_linux_arm64.tar.gz wget github链接 安装 tar -zxvf…

如何在Spring Boot中使用EhCache缓存

1、EhCache介绍 在查询数据的时候&#xff0c;数据大多来自于数据库&#xff0c;我们会基于SQL语句与数据库交互&#xff0c;数据库一般会基于本地磁盘IO将数据读取到内存&#xff0c;返回给Java服务端&#xff0c;我们再将数据响应给前端&#xff0c;做数据展示。 但是MySQL…

Java LeetCode刷题 单调栈

单调栈 单调栈概念 每日温度 单调栈 概念 单调栈&#xff08;Monotonic Stack&#xff09;是一个特殊的数据结构&#xff0c;它是一种栈&#xff0c;但具有单调性的特性。单调栈有两种类型&#xff1a;单调递增栈和单调递减栈。 在单调递增栈中&#xff0c;栈内的元素保持递…