Android 从SD卡读取json文件返回-空指针异常
我搜索了所有相关的线程,我没有成功,欢迎任何相关的答案 我在SDCard中的Android 从SD卡读取json文件返回-空指针异常,android,json,android-sdcard,Android,Json,Android Sdcard,我搜索了所有相关的线程,我没有成功,欢迎任何相关的答案 我在SDCard中的.NewFolder文件夹中有一个JSON数据作为.JSON文件, 我想读取文件中的数据并进行解析,找到时间戳,如果时间戳不同,我想重写它 下面是我使用的代码,我在aBuffer中获取数据,在jdata\u fromfile中获取值,但在解析时获取nullPointerException myFile = new File(Environment.getExternalStorageDirectory() + "/.Ne
.NewFolder
文件夹中有一个JSON数据作为.JSON
文件,
我想读取文件中的数据并进行解析,找到时间戳,如果时间戳不同,我想重写它
下面是我使用的代码,我在aBuffer
中获取数据,在jdata\u fromfile
中获取值,但在解析时获取nullPointerException
myFile = new File(Environment.getExternalStorageDirectory() + "/.NewFolder/" +str.get(i));
if(myFile.exists())
{
FileInputStream fIn = new FileInputStream(myFile);
BufferedReader myReader = new BufferedReader(new InputStreamReader(fIn));
String aDataRow = "";
String aBuffer = "";
while ((aDataRow = myReader.readLine()) != null)
{
aBuffer += aDataRow;
}
myReader.close();
jdata_fromfile = new JSONObject(aBuffer);
String timestamp_fromfile = jdata_fromfile.getString(str_timestamp.get(i));
timestamp_val_fromfile.add(timestamp_fromfile);
}
else
{
myFile.createNewFile();
writedate_tofile(value_json.toString());
timestamp_val_fromfile.add("xxx");
}
而且,当我在记事本中打开文件时,它都在一行中,只显示部分数据,当我复制到
我得到了整个数据和一个有效的json。
当我执行-ctrl+end并按enter键时,我可以在记事本中看到其余的数据
为什么会这样?我哪里会出错
这是我的错误日志
02-13 18:44:52.109: E/aBuffer value(7134): is {"Status":{"Itemlist":[{"x - Drinks":{"Details":[{"type":"","image":"","price":"","name":"Minerals"},{"type":"","image":"","price":"","name":"Milk Shakes"},{"type":"","image":"","price":"","name":"Milk"},{"type":"","image":"","price":"","name":"Mineral Water"},{"type":"","image":"","price":"","name":"Hot Beverages"},{"type":"","image":"","price":"","name":"Chocolate Muffin and Ice Cream"}, ........................................................................{"type":"","image":"","price":"","name":"Blu
02-13 18:44:52.189: E/jdata_fromfile value(7134): is {"x Time_stamp":"2013-02-12 12:30:00","Status":{"Itemlist":[{"x - Sides":{"Details":[{"type":"","image":"","name":"Onion Rings (6)","price":""},{"type":"","image":"","name":"Sausage Portion (Minimum 2 per portion)","price":""},.................................................................................................................... ,"x - Burgers":{"Details":[{"type":"","image":"","name":"x 5oz Burger","price":""},{"type":"","image":"","name":"x 5oz Cheese Burger","price":""},{"type":"","image":"","name":"x 5oz with Bacon and Cheese","price":""},{"type":"","imag
02-13 18:44:52.189: E/Reading from internal file - Exception e(7134): java.lang.NullPointerException
提前感谢。我不知道上面的代码有什么问题,但下面是使用不同JSON库的解决方案 我在我的一个android应用程序中使用了以下代码,它非常适合从android文件系统读取任何json文件。我没有使用Android的JSON库,而是使用了 将上面的jar放在Android项目的libs文件夹中。并在
.Manifest
文件中设置以下权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
这里我的list.json
文件位于/mnt/sdcard/Download
位置
下面是一个在简单java项目中使用上述库的示例,以供参考。在哪一行获得NullPointerException?只需发布stacktrace。我在一个try catch中使用上述代码,我得到:02-13 18:33:15.909:E/从内部文件读取-异常E(6632):java.lang.NullPointerException发布您得到的整个stacktrace。点表示数据,我已经截取了一些并发布了您是否尝试过JSONParser。。。??
JSONParser parser = new JSONParser();
try {
String PATH = Environment.getExternalStorageDirectory() + "/Download/list.json";
Object object = parser.parse(new FileReader(PATH));
JSONObject jsonObject = (JSONObject) object;
//Use JSONArray instead of JSONObject if json file contains array of JSONs
//
// Do anything with jsonObject
//
} catch(Exception e) {
// TODO: handle exception
}