【问题标题】:Accessing Array using simple JSON parser java使用简单的 JSON 解析器 java 访问数组
【发布时间】:2018-03-04 01:44:01
【问题描述】:

我有如下 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 解析器?我已经可以访问其他简单的参数,例如时间、下限和全部。

好吧,我在这里尝试了类似的解决方案 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

【问题讨论】:

  • 你不是新来的,所以我有点惊讶你在问这个问题时没有展示更多你自己尝试过的解决方案。您自己的代码尝试在哪里?它怎么不工作?如果你没有,那么问题就太宽泛了。

标签: java json parsing


【解决方案1】:

好吧,最后,我这样做了。以防万一它帮助别人:

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"));

【讨论】:

    猜你喜欢
    • 2015-04-16
    • 1970-01-01
    • 2016-01-28
    • 2011-07-15
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多