3.Json对象的应用

文档创建者:admin
浏览次数:280
最后更新:2024-08-24
软件文档
教程文档: 平台核心 » 类的应用
在IDE中,我们时时刻刻需要用到的对象。


每个对象都支持挂接子成员例如:
声明对象

let  我是对象={}
或者在表格中声明
其中可以给 我是对象 挂接成员

  1. 我是对象.第一个成员=0
  2. 我是对象.aaa='我是文本'
  3. 我是对象.文字对象=文字创建()
复制代码


其中成员另外一种赋值方法:
  1. 我是对象['第一个成员']=0
复制代码


这个方法的好处是可以使用传递变量来操作例如:
let 变量='aaa'
  1. 我是对象[<span style="background-color: rgb(255, 255, 255);">变量</span>]='修改内容'
复制代码


更多命令,请参考 数据Jsonxx 系列

可以将一串文本转到对象,对象到文本,以及检测是否为json子串。

高级应用


  数组嵌套对象
//声明一个Json数组变量
let Json=[]
//声明一个JsonEx对象变量
let JsonEx={id:1,name:'55IDE'}
//将JsonEx加入到Json数组中
数组加入成员末尾(Json, JsonEx)


输出结果:
  • Array(1)

    • 0: {id: 1, name: '55IDE'}
    • length: 1

对象嵌套对象

// 声明一个对象
let Json = {}
//在对象中插入子成员对象
Json = {JsonEx: {id: 1, name: '55IDE'}}
调试输出(Json)


  • {JsonEx: {…}}
    • JsonEx: {id: 1, name: '55IDE'}

或者使用:

let Json = {}
let JsonEx = {id: 1, name: '55IDE'}
Json.JsonEx = JsonEx
结果也是一样

代码案例
  1. // let Json = []
  2. // let JsonEx = {id: 1, name: '55IDE'}
  3. // 数组加入成员末尾(Json, JsonEx)


  4. //
  5. let Json = {}
  6. // let JsonEx = {id: 1, name: '55IDE'}
  7. // Json.JsonEx = JsonEx
  8. // 调试输出(Json)
  9. //
  10. Json = {JsonEx: {id: 1, name: '55IDE'}}
  11. 调试输出(Json)
复制代码

深拷贝和浅拷贝的区别
  • 浅拷贝(shallow copy):只复制指向某个对象的指针,而不复制对象本身,新旧对象共享一块内存。
  • 深拷贝(deep copy):复制并创建一个一模一样的对象,不共享内存,修改新对象,旧对象保持不变。
  • 浅拷贝只是拷贝一层,更深层次对象级别的只拷贝引用(地址),所以改变新对象,旧对象也会改变,因为新旧对象共享一块内存。
对象赋值

let a=1
let b=a
b=2
//调试输出结果
a=1 ,b=2
解析:因为他们只有一个自身变量值,所以赋值时候属于深拷贝,每个都是独立的,因为它就一层

let a={id:1,name:"55IDE"}
let b=a
b.id=3
//调试输出结果
a={id:3,name:"55IDE"},b={id:3,name:"55IDE"}
解析:因为b浅拷贝了a,b可以索引a的成员,但修改的时候指向内存是同一块,所以b与a是同一个,修改任意一个对象,两者同时改变


对象的深度拷贝案例(注:无法拷贝内部带有子程序的,如果需求请使用辅助插件中的拷贝)

  1. let a = {id: 1, name: "55IDE"}
  2. let b = 拷贝对象(a)
  3. b.id = 3
  4. 调试输出(a)
复制代码
{id: 1, name: '55IDE'}

//解析,b深度拷贝了a,修改b,a不会变。



高级用法: Json是传递过来的参数  Json_ 是当前声明的局部变量
  1. Json_.id = Json.id;
  2. Json_.lookface = Json.lookface;
  3. Json_.itemid = Json.itemid;
  4. Json_.num = Json.num;
  5. Json_.type = Json.type;
  6. Json_.effect = Json.effect;
  7. Json_.name = Json.name;

  8. // 扩展 Json_,保留上面的属性并继续赋值 Json 中的其他属性
  9. Json_ = { ...Json_, ...Json };
复制代码



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则