使用jarfile中不可用的JSONParser读取JSON文件

时间:2019-03-21 05:14:37

标签: java json readfile jsonparser

我试图读取一个json文件并将其转换为jsonObject,当我搜索如何做时,我遇到了该方法给用户

JSONParser parser= new JSONParse();

但是我在代码中使用的org.json版本是“ 20180803 ”。它不包含JSONParser。它已从 org.json 包中删除吗?如果是这样,我可以使用什么新类或方法来读取json文件并将其转换为json对象。

我的依赖关系如下:

       <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20180813</version>
        </dependency>

4 个答案:

答案 0 :(得分:1)

嗨,您可以使用简单的JSON。您只需要添加pom.xml文件:

<dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
</dependency>

示例代码

public static JSONObject convertJsonStingToJson(String jsonString) {
    JSONParser parser = new JSONParser();
    return  json = (JSONObject) parser.parse(jsonString);
}

答案 1 :(得分:1)

org.json库具有非常简单的API,该库不具有JSONParser但具有JSONTokener。我们可以直接从JSONObject构造JSONArrayString

import org.json.JSONArray;
import org.json.JSONObject;

public class JsonApp {

    public static void main(String[] args) {
        // JSON Object
        String object = "{\"p1\":\"v1\", \"p2\":2}";
        JSONObject jsonObject = new JSONObject(object);
        System.out.println(jsonObject);

        // JSON Array
        String array = "[{\"p1\":\"v1\", \"p2\":2}]";
        JSONArray jsonArray = new JSONArray(array);
        System.out.println(jsonArray);
    }
}

上面的代码显示:

{"p1":"v1", "p2":2}
[{"p1":"v1","p2":2}]

您需要注意,取决于使用哪个类取决于JSON负载:如果JSON{开始,则使用JSONObject,如果来自[,则使用-使用JSONArray。在其他情况下,JSON有效负载无效。

如其他答案中所述,如果可以的话,绝对应该使用JacksonGson

答案 2 :(得分:0)

您的问题的简短答案是:不,它没有被删除,因为它根本不存在

我认为您提到的是一个图书馆,并试图使用另一个图书馆。无论如何,如果您真的想使用 org.json ,则可以找到如何here

@SerializedName("teams")
List<Team> teamList;

答案 3 :(得分:0)

在构建文件中添加以下依赖项

//json processing
implementation("com.fasterxml.jackson.core:jackson-core:2.9.8")
implementation("com.fasterxml.jackson.core:jackson-annotations:2.9.8")
implementation("com.fasterxml.jackson.core:jackson-databind:2.9.8")

a.json文件

{
  "a": "b"
}

代码:

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.FileInputStream;
import java.io.InputStream;


public class App {

    public static void main(String[] args) throws Exception {
        ObjectMapper objectMapper = new ObjectMapper();
        InputStream input = new FileInputStream("a.json");
        JsonNode obj =  objectMapper.readTree(input);
        System.out.println(obj.get("a")); // "b"
    }
}