我有如下 JSON 文件:
{
"KerParameters": [
{
"cut": false,
"velocity": 0,
"sigma": 150,
"Tau": 250,
"deltaT": 30,
"deltaX": 100,
"minValue": 0.000001
},
{
"cut": false,
"velocity": 0,
"sigma": 150,
"Tau": 250,
"deltaX": 100,
"minValue": 0.000001
}
],
"time": false,
"lower": 1E-14,
"qualit": 1.0,
"vfth": 55.0,
"vjt": 30.0,
"lambf": 0.1,
"lambs": 0.6,
"lambdaj": 0.5,
"qRpic": 0.5,
"minV": 3.0,
"minKernelSizeT": 0
}
有人可以告诉我如何获取 KerParameters 数组吗?然后使用简单的 JSON 解析器来处理它的子参数(lamb、lambs 等)?我已经可以访问其他简单参数,如时间、下限等。
嗯,我在这里尝试了类似的解决方案 How do I make a JSON object with multiple arrays?
JSONParser parser = new JSONParser();
JSONObject data = (JSONObject) parser.parse(
new FileReader("src/test/resources/testcase4/KernelParameters.json"));
data.KerParameters['K1'].cut // This dos not work as it does not identify KerParameters
最佳答案
好吧,最后我就这样做了。以防万一它对其他人有帮助:
JSONParser parser = new JSONParser();
FileReader fr = new FileReader("path to json file");
JSONObject data = (JSONObject) parser.parse(fr);
JSONArray kernelParams = (JSONArray) data.get("KernelParameters");
for(int i=0; i<kernelParams.size();i++) {
JSONObject jsonObject = (JSONObject) kernelParams.get(i);
kparams.add(jsonObject);
}
JSONObject jo = (JSONObject) kparams.get(0);
System.out.println("to get Sigma for e.g.: " + jo.get("sigma"));
关于java - 使用简单的 JSON 解析器 java 访问数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46365379/