关于Maxscript读取解析JSON文件

        因为工作需要使用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"
    }]
}

在Java中,读取本地的json文件可以使用字符流的方式进行操作。你可以使用FileReader和InputStreamReader来读取文件内容,并将其转换为String字符串。以下是一个读取本地json文件的示例代码: ```java import java.io.*; public class JsonReader { public static String readJsonFile(String filePath) { String jsonStr = ""; try { File jsonFile = new File(filePath); FileReader fileReader = new FileReader(jsonFile); Reader reader = new InputStreamReader(new FileInputStream(jsonFile), "utf-8"); int ch = 0; StringBuffer sb = new StringBuffer(); while ((ch = reader.read()) != -1) { sb.append((char) ch); } fileReader.close(); reader.close(); jsonStr = sb.toString(); return jsonStr; } catch (IOException e) { e.printStackTrace(); return null; } } } ``` 你可以使用`readJsonFile`方法来读取本地的json文件。只需要传入json文件的路径,就可以将文件内容读取成一个字符串返回。记得要处理可能出现的异常情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Java解析JSON文件](https://blog.csdn.net/Jeck_wu/article/details/118755971)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值