BLUE引擎最新更新的JSON有什么用啊?JSON用法应用介绍。JSON对传奇行业的帮助?
	
这是百度百科有关JSON的介绍:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
	
站长完美对JSON最简单的理解和应用为:
1、JSON是是一种基于文本,独立于语言的轻量级数据交换格式
2、概括一下就是简单,轻量,可记录数字、文本、布尔值、日期时间、浮点值等。
3、传奇行业所需的,该用到的数据类型,在JOSN里面都可以实现
4、这里的应用大概可以理解为,JSON数据是一个标准化的轻量数据,可以方便应用于各类插件、网关,脚本写法会更加规范通用
5、JSON可以跨平台、跨服务器通用。手机端,跨服数据都可以轻松记录读取。
	
	
下面是所有BLUE引擎关于JSON字符串的应用格式说明书:
添加NPC命令JSON,操作JSON的字符串,格式:JSON 标识|存活时间 方法 名称 数值
这是百度百科有关JSON的介绍:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
站长完美对JSON最简单的理解和应用为:
1、JSON是是一种基于文本,独立于语言的轻量级数据交换格式
2、概括一下就是简单,轻量,可记录数字、文本、布尔值、日期时间、浮点值等。
3、传奇行业所需的,该用到的数据类型,在JOSN里面都可以实现
4、这里的应用大概可以理解为,JSON数据是一个标准化的轻量数据,可以方便应用于各类插件、网关,脚本写法会更加规范通用
5、JSON可以跨平台、跨服务器通用。手机端,跨服数据都可以轻松记录读取。

下面是所有BLUE引擎关于JSON字符串的应用格式说明书:
添加NPC命令JSON,操作JSON的字符串,格式:JSON 标识|存活时间 方法 名称 数值
	!可以使用VSCode(安装json扩展插件,json格式化插件)查看编辑json文件。
	!资料参考:https://www.runoob.com/json/json-tutorial.html
	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	各个参数意义:
	1) 标识,类似自由变量,指定一个唯一标识,“|”号后面是此对象的存活时间(秒),-1表示永久,
	不写存活时间默认是180秒,即180秒后,此标识的JSON对象会被释放。
	2) 方法,有以下几种:
	L  从文件加载,不要频繁使用,否则有性能问题!!!
	S  保存到文件,不要频繁使用,否则有性能问题!!!
	A  添加
	E  赋值
	C  清理
	D  删除指定名称的子结点
	P  解析给定的字符串
	O  排序,格式:
	   1) JSON 标识 O 是否按名称排序(0/1) 是否排序子结点(0/1)
	Y  复制,格式:
	   1) JSON 标识 Y 源标识 0  // 从“源标识”复制一份到“标识”
	M  合并,格式:
	   1) JSON 目标标识 M 源标识 0  // 0 不重复,重复项目将以“目标标识”为准,默认
	   2) JSON 目标标识 M 源标识 1 // 1 不重复,重复项目将以“源标识”为准
	   3) JSON 目标标识 M 源标识 2 // 2 可重复,将“源标识”项目追加至“标识”中
	3) 名称,类型是字符串
	4) 数值,有以下几种类型:
	整数 12345678
	字符串 普通字符串
	布尔值 True|False
	浮点数 1.367
	日期时间 "2018-11-12 06:12:11" 或 "2018-11-12T06:12:11.123",“.”后面指的是毫秒
	数组 ["string",100,null,true,false,123.4]
	子对象 {"name":"ObjectName","value":"ObjectValue"}
	注意:数值最好不要有空格,如果必须带空格,请使用双引号""包围起来以表示为一个参数
	5) 取值的变量:
	<$JSON(标识)JSON> // 固定格式,JSON对象的字符串,单行
	<$JSON(标识)FORMAT> // 固定格式,JSON对象格式化后的字符串(换行)
	<$JSON(标识)path> // 某路径或名称下的数值
	例:
	#act
	JSON myjson C
	JSON myjson A 整数 12345
	JSON myjson A 字符串 这是字符串...
	JSON myjson A 布尔值 True
	JSON myjson A 浮点数 2.532
	JSON myjson E 日期时间 "2018-11-12 06:12:11"
	JSON myjson E 数组 ["字符串",100,null,true,false,123.4]
	JSON myjson E 对象 {"name":"Object_Name","value":"Object_Value"}
	sendmsg 7 myjson格式化字符串是:<$JSON(myjson)FORMAT>
	; 第一个位置以0开始
	sendmsg 7 “数组”第二位置的值是:<$JSON(myjson)数组[1]>
	; 保存到文件
	JSON myjson S ..QuestDiaryexample.json
	; 从字符串解释到JSON
	JSON myjson P {"myobj":{"name":"object1","subobj":{"name2":"subObj2","name1":"subObj1","int2":123456},"array":[1,3,4]},"array":[1.23,200,300,{"name":"字符串"}]}
	sendmsg 7 取值:<$JSON(myjson)object.subobj.int2>
	JSON myjson D array[3]
	JSON myjson D myobj.subobj[1]
	JSON myjson D myobj.subobj.int2
	sendmsg 7 删除后的结果<$JSON(myjson)FORMAT>
	; 合并例子
	JSON myjson1 P {a:10000,b:200,c:"id"}
	JSON myjson2 P {a:"str",d:500,e:7002}
	; 不重复,重复项目将以“目标标识”为准,默认
	JSON cpyjson Y myjson1
	JSON cpyjson M myjson2 0
	sendmsg 7 合并结果0:<$JSON(cpyjson)JSON>
	; 不重复,重复项目将以“源标识”为准
	JSON cpyjson Y myjson1
	JSON cpyjson M myjson2 1
	sendmsg 7 合并结果1:<$JSON(cpyjson)JSON>
	; 追加项目,允许重复
	JSON cpyjson Y myjson1
	JSON cpyjson M myjson2 2
	sendmsg 7 合并结果2:<$JSON(cpyjson)JSON>
	; 赋值
	JSON myjson E object.赋值.int 87654321
	JSON myjson E object.赋值.float 5.76
	JSON myjson E object.赋值.string abcdefg...
	JSON myjson E object.赋值.datetime "2022-11-22 11:22:33.123"
	JSON myjson E object.赋值.子对象.int 12345678
	JSON myjson E object.赋值.子对象.ishum true
	JSON myjson E object.赋值.子对象.float 5.76
	JSON myjson E object.赋值.子对象.array [12345,1.76,false,string,2022-11-22T11:22:33.123]
	sendmsg 7 赋值结果<$JSON(myjson)FORMAT>
	添加NPC检测命令CheckJson,格式:CheckJson 标识 方法 标识|名称|路径 选项
	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	各个参数意义:
	1) 标识,类似自由变量,指定一个唯一标识
	2) 方法,有以下几种:
	X  判断是否包含指定路径的子结点,格式:
	   1) CheckJson myjson X path
	N  判断是否包含指定的子结点名称,格式:
	   1) CheckJson myjson N name 是否嵌套检查子结点(0/1)
	V  判断是否包含指定的子结点数值,格式:
	   1) CheckJson myjson N value 是否嵌套检查子结点(0/1)
	E  判断JSON内容是否相同,格式:
	   1) CheckJson myjson E myjson2
	例:
	#if
	true
	#act
	JSON myjson1 P {"myobj":{"name":"object1","subobj":{"name2":"subObj2","name1":"subObj1","int2":123456},"array":[1,3,4]},"array":[1.23,200,300,{"str":"字符串"}]}
	JSON myjson2 P {"myobj":{"name":"object1","subobj":{"name2":"subObj2","name1":"subObj1","int2":888888},"array":[1,3,4]},"array":[1.23,200,300,{"str":"字符串"}]}
	#if
	CheckJson myjson1 X myobj.subobj.int2
	#act
	sendmsg 6 路径存在:<$JSON(myjson1)myobj.subobj.int2>
	#elseact
	sendmsg 5 路径不存在
	#if
	; 检测第一层,名为array的数组的第四个对象是否存在
	CheckJson myjson1 X array[3]
	#act
	sendmsg 6 路径存在,取数值方法一:<$JSON(myjson1)array[3][0]>,方法二:<$JSON(myjson1)array[3].str>,方法三(整个对象):<$JSON(myjson1)array[3]>
	#elseact
	sendmsg 5 路径不存在
	#if
	CheckJson myjson1 N name2
	#act
	sendmsg 6 1)包含名称
	#elseact
	sendmsg 5 1)不包含名称
	#if
	CheckJson myjson1 N name2 1
	#act
	sendmsg 6 2)包含名称(检查子结点),数值是:<$JSON(myjson1)myobj.subobj.name2>
	#elseact
	sendmsg 5 2)不包含名称(检查子结点)
	#if
	CheckJson myjson1 V 123456
	#act
	sendmsg 6 3)包含数值
	#elseact
	sendmsg 5 3)不包含数值
	#if
	CheckJson myjson2 V 1.23 1
	#act
	sendmsg 6 4)包含数值(检查子结点):<$JSON(myjson1)array[0]>
	#elseact
	sendmsg 5 4)不包含数值(检查子结点)
	#if
	CheckJson myjson1 E myjson2
	#act
	sendmsg 6 5)相等
	#elseact
	sendmsg 5 5)不等