因为工作需要使用3dmax读取并解析json文件,以前使用过Maxscript开发脚本,但是对于3dmx的python方向不是很熟因此决定使用Maxscript去读取并解析json文件。
搜索了一下发现csdn上的方法都很老而且很麻烦,于是又去寻找了一下相关资料,发现2019版本的3dmax可以使用Maxscript去调用python库来进行操作,因此尝试使用python的json库去读取和解析JSON文件。
json = python.import("json") --导入json库
json_path = @"G:\2024.7.5\JSON\JSON.json" --json文件路径
JsonFile = openFile json_path --打开json文件
JsonString = ""
while not eof JsonFile do (JsonString += readchar JsonFile) --读取json文件
myjson = json.loads(JsonString) --返回 Python 字段的数据类型其实就是一个字典
print myjson["整形"] --和python字典的值的获取方式一样
print myjson["整形数组"] --可以获取python的列表类型数据
print myjson["整形数组"][1] --可以获取python的列表类型数据中的第一个元素,从1开始
for number=1 to myjson["多维列表"].count do print myjson["多维列表"][number] --可以用这种方法迭代获取多维列表的值
print myjson["Json对象数组"][1]["整形元素"] --可以这样获取Json对象数组的值
以下为测试用的JSON文件内容:
{
"整形": 100,
"整形1": 200,
"整形2": 300,
"字符串": "string value",
"布尔值": "bool value",
"整形数组": [38579573.695336744, 3284414.731222151,
222.2111,
333.3111],
"多维列表": [[0,0,0], [100,0,0], [100,100,0], [0,100,0]],
"Json对象数组": [{
"整形元素": 9999,
"字符串元素": "string value"
}]
}