我在本地创建了一个json文件。我可以在数据> data> com.example.storage> files> filename.json中查看。使用这个,我想在本地获取所有文本值&下载所有图像并将其保存在图像URL中的SD卡中,该URL位于json文件中。在离线模式下我自己可以加载json文件中的所有文本值以及SD卡中的图像。
如果这个想法有效,请告诉我。如果没有请建议其他方法来做到这一点。
该任务正在使用我想要获取数据的本地JSON文件。怎么做?(我为每个数据使用单独的ID)。
示例JSON文件是。
{"ImageData":[{"ImageId":"12","ImageName":"Img1","ImageDesc":"Img1 Img1Img1 ","ImageUrl":"img_url/pro1.jpg"},{"ImageId":"13","ImageName":"Img13","ImageDesc":"Img13 Img13 Img13Img13 ","ImageUrl":"img_url/pro2.jpg"},{"ImageId":"14","ImageName":"Img14","ImageDesc":"Img14 Img14 Img14 Img14 Img14 ","ImageUrl":"img_url/pro3.jpg.jpg"},]}
答案 0 :(得分:1)
是的,有可能。下次提供一些代码,以便我们有一些工作,没有太多人可以做到解决这个问题。
为了让您开始查看有关JSON的本教程: http://www.vogella.com/tutorials/AndroidJSON/article.html
这个问题可以帮助您在本地阅读文件: How can I read a text file in Android?
当您将文件作为字符串获取时,您可以创建JSONObject
并解析URL并检索图像。
答案 1 :(得分:0)
您是否尝试过使用Gson library for Android?
我使用它并且它完美地工作,你将创建完全代表Json的对象。然后在Json上应用 Gson 方法,它将自动获取您创建的对象/对象中的所有数据。
如果您想要有关于如何使用 Gson 的教程,I think this guy explains really well. 我建议你在询问其他任何东西之前尝试这个技术,因为它是一个非常常用的库来解析Json Data。使用它之后,您将拥有完全反映Json文件内容的对象!
希望它有所帮助!
哦顺便说一下,here is a website that will help you farmat your Json。我发现它非常有用,希望你喜欢它;)
答案 2 :(得分:0)
这里是代码读取JSON
数据来自文件该文件保存在项目的资产文件夹中
public JSONObject readDummyResponse() {
InputStream inputStream = null;
try {
inputStream = this.getAssets().open("sample_response.txt");
} catch (IOException e1) {
e1.printStackTrace();
}
JSONObject jsonObject = null;
if (inputStream != null) {
BufferedReader reader = new BufferedReader(new InputStreamReader(
inputStream));
StringBuffer buffer = new StringBuffer();
String statement;
try {
while ((statement = reader.readLine()) != null) {
if (statement.trim().length() > 0) {
buffer.append(statement);
}
}
} catch (IOException e1) { // TODO Auto-generated catch block
e1.printStackTrace();
}
if (buffer.length() > 0) {
try {
jsonObject = new JSONObject(buffer.toString());
} catch (JSONException e) {
e.printStackTrace();
}
}
}
return (JSONObject) jsonObject;
}
答案 3 :(得分:0)
这很简单!在这里:
private void DoWork() {
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath(),
"file.json"); //path to your file assuming its in root of SD card
String content = "";
try {
BufferedReader br = new BufferedReader(new FileReader(file));
try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
line = br.readLine();
}
content = sb.toString();
} finally {
br.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException io) {
io.printStackTrace();
}
mTextView.setText(""); // A multiline text view big enough
mTextView.append("\n\n-----START CONTENT-----\n\n");
mTextView.append(content);
mTextView.append("\n\n-----START JSON-----\n\n");
try {
JSONArray jsonArray = new JSONArray(content);
int length = jsonArray.length();
for (int i = 0; i < length; i++) { /itterate throu json array
JSONObject obj = jsonArray.getJSONObject(i);
//here you can access individual parts of you json object by getString()...getBoolean().... etc...
mTextView.append("\n" + obj.toString());
}
} catch (JSONException e) {
e.printStackTrace();
}
}
要读取属于app目录的内部文件,请尝试:
this.openFileInput("yourfile.txt");
//`this` is the reference to you Activity or Context
示例:
FileInputStream in = openFileInput("filename.txt");
InputStreamReader inputStreamReader = new InputStreamReader(in);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuilder sb = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
sb.append(line);
}
更多详情here