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

news2024/9/28 23:22:41

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.coloradmin.cn/o/1379311.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【二、自动化测试】为什么要做自动化测试?哪种项目适合做自动化?

自动化测试是一种软件测试方法,通过编写和使用自动化脚本和工具,以自动执行测试用例并生成结果。 自动化旨在替代手动测试过程,提高测试效率和准确性。 自动化测试可以覆盖多种测试类型,包括功能测试、性能测试、安全测试等&…

Unity2022.3打包Android后从AB包加载场景发现丢失大量脚本问题

问题 这两天遇到一个问题,在VR项目打包Android的时候,加载场景后,Timeline工作不正常,找不到原因。 现象 看到有很多警告,丢失脚本的Log。 因为场景本身也有一些丢失的脚本所以没在意,但是又不是所有脚本…

Linux 【C编程】IO进阶— 阻塞IO、非阻塞IO、 多路复用IO、 异步IO

文章目录 1.阻塞IO与非阻塞IO1.1为什么有阻塞式?1.2非阻塞 2.阻塞式IO的困境3.并发IO的解决方案3.1非阻塞式IO3.2多路复用IO3.2.1什么是多路复用IO?3.2.1多路复用IO select原理3.2.1多路复用IO poll原理 3.3异步IO 1.阻塞IO与非阻塞IO 1.1为什么有阻塞式…

Msa全球最新研究:多系统萎缩特效药全球最新进展

多系统萎缩是一种罕见的神经系统疾病,它涉及到多个系统的功能减退或丧失。对于这种疾病,传统的西医治疗方法往往束手无策。然而,中国著名中医刘家峰大夫,却通过中药治疗,为多系统萎缩患者带来了新的希望。 刘家峰大夫…

idea使用docker-compose发布应用程序

非常重要的话说在前头 idea要想使用docker-compose,不能使用ssh创建idea Docker,而需要使用socket创建idea Docker。 socket docker是不安全的,任何人都可以访问你的docker,所以只能测试环境使用,请勿在正式环境使用s…

TreesVariety

树木品种 - 树木和植物捆绑包。与“植被引擎”兼容的包装 通用和HDRP的树木包在这里 树木品种: ● 支持Unity Wind; ● 11种树木,7种植物; ● Unity树创建器树(可编辑); ● 与内置管道配合使用; ● 支持地形广告牌。 树木: ● 8棵桦树; ● 4块枫木; ● 8块橡木; ●…

代码随想录-刷题第五十五天

72. 编辑距离 题目链接:72. 编辑距离 思路:本题是用动规来解决的经典题目,这道题目看上去好像很复杂,但用动规可以很巧妙地算出最少编辑距离。动态规划五步曲分析: dp[i][j]表示以下标i-1为结尾的字符串word1&#x…

2024年甘肃省职业院校技能大赛信息安全管理与评估 样题一 理论题

竞赛需要完成三个阶段的任务,分别完成三个模块,总分共计 1000分。三个模块内容和分值分别是: 1.第一阶段:模块一 网络平台搭建与设备安全防护(180 分钟,300 分)。 2.第二阶段:模块二…

Git的简单使用说明

Git入门教程 git的最主要的作用:版本控制,协助开发 一.版本控制分类 ​​ 1.本地版本控制 ​​ 2.集中版本控制 ​​ 所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不…

Springboot+vue整合 支付宝沙箱支付

可以完成的功能: 一、拉起支付 二、异步回调 三、掉单处理 四、超时关闭 五、订单退款

ssh远程登录

ssh协议 ---基于 tcp 的 22 号端口 确认是否有ssh包: [rootserver ~] rpm -qa | grep sshopenssh-clients-8.7p1-24.el9_1.x86_64openssh-server-8.7p1-24.el9_1.x86_64 1、 ssh的验证过程 第一阶段:版本协商以及tcp三次握手 第二阶段:秘钥和…

C# 图解教程 第5版 —— 第22章 命名空间和程序集

文章目录 22.1 引用其他程序集22.2 命名空间22.2.1 命名空间名称22.2.2 命名空间的补充22.2.3 命名空间跨文件伸展22.2.4 嵌套命名空间 22.3 using 指令22.3.1 using 命名空间指令22.3.2 using 别名指令22.3.3 using static 指令 22.4 程序集的结构22.5 程序集标识符22.6 强命名…

微信小程序(二)事件绑定

注释很详细&#xff0c;直接上代码 新增内容&#xff1a; 点击事件绑定注册页面设置页面初始化数据事件处理函数的实现更新数据并更新视图 源码&#xff1a; index.wxml <!-- 页面的数据绑定 --> <view>{{msg}}</view> <!-- 绑定点击事件 --> <but…

高防ip是什么,防护效果好吗

DDoS攻击是互联网最常见的网络攻击方式之一&#xff0c;通过大量虚假流量对目标服务器进行攻击&#xff0c;堵塞网络耗尽服务器性能&#xff0c;导致服务器崩溃&#xff0c;真正的用户无法访问。以前企业常用的防御手段就是高防服务器&#xff0c;也就是硬防&#xff0c;但由于…

【微信小程序独立开发1】项目提出和框架搭建

前言&#xff1a;之前学习小程序开发时仿照别人的页面自己做了一个商城项目和小说项目&#xff0c;最近突发奇想&#xff0c;想从0开发一个关于《宠物日记》的小程序&#xff0c;需求和页面都由自己设计&#xff0c;将在这记录开发的全部流程和过程中遇到的难题等... 1、搭建小…

MySQL夯实之路-查询性能优化深入浅出

MySQL调优分析 explain&#xff1b;show status查看服务器状态信息 优化 减少子任务&#xff0c;减少子任务执行次数&#xff0c;减少子任务执行时间&#xff08;优&#xff0c;少&#xff0c;快&#xff09; 查询优化分析方法 1&#xff0e;访问了太多的行和列&#xff1…

【教学类-43-18】A4最终版 20240111 数独11.0 十宫格X*Y=Z套(n=10),套用没有分割行列的A4横版模板

作品展示&#xff1a; 撑满格子的10宫格数独50%难度 50空 背景需求&#xff1a; 大4班有3位男孩做9宫格数独&#xff08;81格子&#xff0c;30%难度 24空&#xff09;非常娴熟&#xff0c;我观察他们基本都在10分钟内完成&#xff0c;其中一位男孩把九宫格题目给我看时表达自…

Windows安全基础:UAC

目录 UAC原理介绍 UAC的四个安全级别定义 UAC的触发条件 UAC用户登录过程 UAC虚拟化 配置UAC UAC原理介绍 用户账号控制&#xff08;User Account Control&#xff09; 为Windows Vista推出的一项安全技术&#xff0c;其原理是通过限制安全应用软件对系统层级的访问&…

从零到一保姆级深度学习Docker镜像配置教程

文章目录 前言一、Docker相关工具安装1.1 Docker安装和配置1.2 Nvidia-Docker安装1.3 Docker-Compose安装 二、深度学习环境Docker镜像配置2.1 基础镜像拉取与启动2.2 深度学习Docker环境配置2.2.1 更换软件源2.2.2 安装常见命令2.2.3 安装SSH2.2.4 安装Miniconda2.2.5 安装Pyt…

计算n的平方根m 进而将m向下取整 math.isqrt()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算n的平方根m 进而将m向下取整 math.isqrt() 选择题 请问执行math.isqrt(10)的运行结果是&#xff1a; import math print("【执行】math.sqrt(10)") print (math.sqrt(10)) pr…