Gradle依赖项json-simple错误

7

我是个Gradle新手,我正在尝试构建一个Java项目,但对依赖关系不确定。我从来没有配置过Gradle以使其能够运行我的测试,也不知道如何编译和运行jar文件。

我的build.gradle文件:

apply plugin: 'java'
apply plugin: 'maven'

repositories {
   jcenter()
}

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.25'
    compile 'org.json:json:20160212'
    testCompile 'junit:junit:4.12'
}

以下是控制台显示的错误信息,说明它无法找到我的导入:
 error: package org.json.simple does not exist
 import org.json.simple.JSONParser;

这是我的类:

import org.json.simple.*;
import java.io.*;
import java.util.*;
import java.lang.*;

public class FileLoader {
  @SuppressWarnings("unchecked")
  public static void main(String args[]) {
    JSONParser parser = new JSONParser();
    int count = 0;

    try {
      Object obj = parser.parse(new FileReader(
          "Consumers.json"));

      JSONObject jsonObject = (JSONObject) obj;
      JSONArray array = jsonObject.getJSONArray("people");
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Gradle的哪个版本,你的类是什么样子的?你能添加最少量的代码来重现问题吗? - mkobit
3个回答

18
如果你下载了指定的JSON jar文件,并列出其内容(例如使用jar tf命令),那么它不会包含org.json.simple包。
所以问题很简单,你需要另一个jar文件。
编辑:
我不知道这是否是意图,但我的猜测是:如果你将此依赖项添加到build.gradle中:
compile 'com.googlecode.json-simple:json-simple:1.1.1'

以及这些导入:

import org.json.simple.parser.*;
// import org.json.simple.*;
import org.json.*;

那么这个示例对我来说是可以编译的。


9
在我的build.gradle文件中添加以下内容即可生效:
implementation 'com.googlecode.json-simple:json-simple:1.1.1'

3

您缺少正确的依赖以使用org.json.simple库。

我认为您可能需要类似https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple 的依赖坐标,但很难找到Maven依赖坐标。

如果您想使用该库,可以将以下部分添加到构建脚本中:

repositories {
    jcenter()
}

dependencies {
    compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
}

将以下内容添加到文件中以修复导入问题:
import org.json.simple.parser.*;

接下来,您只需要在类定义中修复使用错误即可。

另外,那个库看起来没有得到维护,因此您可能想探索其他JSON解析库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接