B4J解析endpoints.txt中JSON出现org.json.JSONException错误,求解决
问题排查与解决方案
错误原因
File.ReadList方法会将文件逐行拆分为列表元素,而你的endpoints.txt中存储的是一个完整的JSON数组结构,第一行仅为[,单独解析这一行必然触发Unterminated array错误——因为这不是一个完整的JSON片段。- 代码逻辑错误地假设每行都是一个独立的JSON对象,但实际上整个文件内容才是一个包含所有端点数据的JSON数组。
修复方案
将文件读取方式改为读取完整内容,再解析整个JSON数组,修改后的代码如下:
Sub tickInterval_tick time.Enabled= False ' 读取文件完整内容 Dim endpointJson As String = File.ReadString(File.DirApp, "endpoints.txt") Dim parser As JSONParser parser.Initialize(endpointJson) ' 解析整个JSON数组为List Dim endpointList As List = parser.NextArray ' 遍历数组中的每个端点对象 For Each endpointMap As Map In endpointList ContainerReady(endpointMap.Get("name"), endpointMap.Get("host"), endpointMap.Get("token")) Next time.Enabled= True End Sub
代码说明
File.ReadString:读取文件的全部文本内容,确保获取到完整的JSON结构,避免逐行拆分导致的不完整JSON片段。parser.NextArray:将完整的JSON字符串解析为List,每个元素对应一个端点的Map对象。- 遍历List:逐个取出每个端点的Map,调用
ContainerReady处理数据。
内容的提问来源于stack exchange,提问作者Ardean Angkasa
相关产品推荐
相关产品推荐

