TS写json数据

ts写json数据

private json_data = {}
private setValue(){
    let j=0;
    for(let i=0;i<7;i++){
        this.json_data[i] = {}
        this.json_data[i][j] = 1;
        j++;
    }
}

*不要声明类型,否则会报错

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过 TypeScript 中的递归函数来实现获取两个 JSON 对象所有不一致的节点。以下是一个示例代码: ```typescript function compareJSON(obj1: any, obj2: any, path = ''): string[] { const diffNodes: string[] = []; if (typeof obj1 !== typeof obj2) { diffNodes.push(path); } else if (Array.isArray(obj1) && Array.isArray(obj2)) { if (obj1.length !== obj2.length) { diffNodes.push(path); } else { obj1.forEach((item, index) => { const newPath = `${path}[${index}]`; const itemDiffNodes = compareJSON(item, obj2[index], newPath); diffNodes.push(...itemDiffNodes); }); } } else if (typeof obj1 === 'object' && typeof obj2 === 'object') { const keys1 = Object.keys(obj1); const keys2 = Object.keys(obj2); const allKeys = new Set([...keys1, ...keys2]); allKeys.forEach((key) => { const newPath = path ? `${path}.${key}` : key; const itemDiffNodes = compareJSON(obj1[key], obj2[key], newPath); diffNodes.push(...itemDiffNodes); }); } else if (obj1 !== obj2) { diffNodes.push(path); } return diffNodes; } // 例子 const obj1 = { name: 'Alice', age: 30, hobbies: ['reading', 'swimming'], address: { city: 'Beijing', country: 'China', }, }; const obj2 = { name: 'Bob', age: 30, hobbies: ['reading', 'gaming'], address: { city: 'Shanghai', country: 'China', }, }; const diffNodes = compareJSON(obj1, obj2); console.log(diffNodes); // ["name", "hobbies[1]", "address.city"] ``` 在上面的代码中,我们定义了一个名为 `compareJSON` 的函数,它递归比较了两个 JSON 对象的所有节点,并返回所有不一致的节点路径。对于每个节点,我们都会比较它们的类型和值,并根据结果添加到 `diffNodes` 数组中。 在比较对象时,我们还需要考虑数组和对象的情况。对于数组,我们需要比较数组长度和每个元素的值;对于对象,我们需要比较对象键的集合,并递归比较每个键的值。在递归比较时,我们还需要传递当前节点的路径,以便在不一致时能够准确地记录节点路径。 最后,我们可以使用示例代码中的两个 JSON 对象进行测试,并将所有不一致的节点路径打印出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值