java如何读取json数据_用Java读取json文件

所以我在阅读

Java中的Json文件时遇到了麻烦.

它是一个Json文件,其内容采用以下格式:

{

"_id": 2864071,

"name": "Neustadt",

"country": "DE",

"coord": {

"lon": 12.56667,

"lat": 52.400002

}

}

这是我正在使用的代码:

package controllers;

@Named(value = "cityID")

@SessionScoped

public class getCityIDs implements Serializable {

public long getCityIDs(String name) {

//Read the json file

try {

FileReader reader = new FileReader(filePath);

JSONParser parser = new JSONParser();

JSONObject jsonObject = (JSONObject) parser.parse(reader);

// get a number from the JSON object

String travelName = (String) jsonObject.get("name");

if(travelName.equals(name)){

long id = (long) jsonObject.get("_id");

System.out.println(id);

return id;

} else {

System.out.println("else");

return 0;

}

} catch (FileNotFoundException ex) {

Logger.getLogger(getCityIDs.class.getName()).log(Level.SEVERE, null, ex);

} catch (IOException | ParseException ex) {

Logger.getLogger(getCityIDs.class.getName()).log(Level.SEVERE, null, ex);

}

System.out.println("einde functie");

return 0;

// JSONObject jsonObject = (JSONObject) parser.parse(getClass().getResource("/json/city.list.json").toString());

}

public String test(){

return "hello world";

}

}

但是,它在这一行给了我一个错误:

JSONObject jsonObject = (JSONObject) parser.parse(reader);

存在:

Severe: Unexpected token LEFT BRACE({) at position 88.

at org.json.simple.parser.JSONParser.parse(Unknown Source)

at org.json.simple.parser.JSONParser.parse(Unknown Source)

at controllers.getCityIDs.getCityIDs(getCityIDs.java:45)

由于某种原因,它无法读取文件路径? “未知来源”?

我不确定我做错了什么.

当我在另一个类中调用该方法时,该方法只返回一个“0”,国家名称为“Neustadt”.

基本上我想要的是这个函数返回某个城市的ID.

名称与ID一起存储在Json中.

编辑:

理想情况下,我希望能够解析位于项目内部的JSON文件.

我尝试使用.getClass().getResource(“/ path / to / json”);但那根本不起作用.

编辑:固定

package controllers;

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.Serializable;

import java.net.URL;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.enterprise.context.RequestScoped;

import javax.enterprise.context.SessionScoped;

import javax.inject.Named;

import org.json.simple.JSONObject;

import org.json.simple.parser.JSONParser;

import org.json.simple.parser.ParseException;

@Named(value = "cityID")

@SessionScoped

public class getCityIDs implements Serializable{

JSONObject jsonObject;

public long getCityIDs(String name) {

try {

JSONParser parser = new JSONParser();

InputStream in = getClass().getResourceAsStream("/dataSteden/stedenNamen1.json");

try (BufferedReader br = new BufferedReader(new InputStreamReader(in))) {

String line;

while ((line = br.readLine()) != null) {

jsonObject = (JSONObject) parser.parse(line);

}

}

String travelName = (String) jsonObject.get("name");

System.out.println("stad: " +travelName);

System.out.println("testttt");

if(travelName.equals(name)){

long id = (long) jsonObject.get("_id");

System.out.println(id);

return id;

} else {

System.out.println("else");

return 5;

}

} catch (FileNotFoundException ex) {

Logger.getLogger(getCityIDs.class.getName()).log(Level.SEVERE, null, ex);

} catch (IOException | ParseException ex) {

Logger.getLogger(getCityIDs.class.getName()).log(Level.SEVERE, null, ex);

}

System.out.println("einde functie");

return 0;

// JSONObject jsonObject = (JSONObject) parser.parse(getClass().getResource("/json/city.list.json").toString());

}

public String test(){

return "hello world";

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值