Ⅰ android读取本地json需要在其他线程吗
在 Android 应用开发中,建议将读取本地 JSON 数据放在其他线程中执行,以避免卡顿或 ANR 等问题,提高用户体验。
在主线程中进行耗时操作会导致应用响应变慢,因为主线程负责处理 UI 事件和更新 UI 界面,如果阻塞,就会导致应用无法响应用户操作,出现 ANR(Application Not Responding)现象。
因此,可以将读取码隐本地 JSON 数据的操作放到 AsyncTask 异步任务中执行。猜模差也可以使用 Handler、Thread 或 Rxjava 等方式进行异步操作。这样穗皮可以保证应用能够快速响应用户操作,提升用户体验。
Ⅱ android中将json转为list
Stringjson="{'斗脊count':1,'gid':100000,'id':1,'text':'100000'},{'count':70484,'gid':100000,'id':1,'text':'101252'}";
//把json字符串转化为json对象
JSONObjectjsonObject=JSONObject.fromObject(json);
ArrayList<obj>list=newArrayList<obj>();
//遍历json对象
for(inti=0;i<jsonObject.size();i++){
Strings=jsonObject.getString(i);
JSONObjectdata=JSONObject.fromObject(s);
objobj1=newobj();
obj1.list_id=data.getString("id");
空贺渗obj1.list_text=data.getString("text"拍闭);
list.add(obj1);
}
classobj{
privatestringlist_id;
privatestringlist_text;
}
Ⅲ Android 中解析 JSON
JSON( JavaScript Object Notation ) 是一种轻量级的数据交换格式。易于阅读和编写,同时也易于机器解析和生成。
JSON 建构于两种结构:
JSON 具有以下这些格式:
参考: Android 中 解析 JSON
Android 提供类四种不同的类来操作 JSON 数据。这些类是 JSONArray、JSONObject、JSONStringer 和 JSONTokenizer
为了解析 JSON 对象,须先创建一个 JSONObject 类的对象,需要传入需解析的字符串 JSONObject root = new JSONObject(candyJson); 然后根据 JSONObject 对象提供方法以及数据类型解析对应 json 数据。下表展示一些 JSONObiect 提供的方法
示例:
Ⅳ Android Json串中添加转义符
一:解袜档析普通json
1:不带转化字符
格式{"type":"ONLINE_SHIPS","message":{"currentTime":1400077615368,"direction":0,"id":1,"latitude":29.5506,"longitude":106.6466}}
JSONObject jsonObject = new JSONObject(jsonstr).getJSONObject("message");
System.out.println("currentTime:"+jsonObject.get("currentTime"));
System.out.println("direction:"+jsonObject.get("direction"));
System.out.println("latitude:"+jsonObject.get("latitude"));
System.out.println("longitude:"+jsonObject.get("longitude"));
jsonarray
JSONObject jo = ja.getJSONArray("cargoList").getJSONObject(0);
2:带转义字型好此符的json格式
{"type"卜迅:"ONLINE_SHIPS","message":"{\"currentTime\":1400077615368,\"direction\":0,\"id\":1,\"latitude\":29.5506,\"longitude\":106.6466}"}
其实也很简单,先把它转化成字符串就可以了
JSONObject jsonObject = new JSONObject(jsonstr);
//先通过字符串的方式得到,转义字符自然会被转化掉
String jsonstrtemp = jsonObject.getString("message");
System.out.println("message:"+jsonstrtemp);
jsonObject = new JSONObject(jsonstrtemp);
System.out.println("currentTime:"+jsonObject.get("currentTime"));
System.out.println("direction:"+jsonObject.get("direction"));
System.out.println("latitude:"+jsonObject.get("latitude"));
System.out.println("longitude:"+jsonObject.get("longitude"));
二:遍历Json对象
JSONObject ports = ja.getJSONObject("ports");
Iterator<String> keys = ports.keys();
while(keys.hasNext()){
String key=keys.next();
String value = ports.getString(key);
}
三:使用Gjson,json与对象相互转化
使用Gson轻松将java对象转化为json格式
String json = gson.toJson(Object);//得到json形式的字符串
User user = gson.fromJson(json,User.class);//得到对象
转化成list
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.lc.function.Action;
import com.lc.models.Groups;
public class MapSearch {
private void ParseData(String _data)
{
Gson gson = new Gson();
List<Groups> ps = gson.fromJson(_data, new TypeToken<List<Groups>>(){}.getType());
System.out.println(ps.get(0).getGroup_name());
}
}
Ⅳ json数据请问怎么遍历
如果是js中遍历使用
var anObject = {one:1,two:2,three:3};//对json数组each
$.each(anObject,function(name,value) {
});
如果是Java代码直接用for循环就行了,说白了json也是数组的一种,json对象和json数组都可以
//遍历json数组
String json1 = "{data:[{name:'Wallace'},{name:'Grommit'}]}";
jsonObjSplit = new JSONObject(json1);
JSONArray ja = jsonObjSplit.getJSONArray("data");
for (int i = 0; i < ja.length(); i++) {JSONObject jo = (JSONObject) ja.get(i);System.out.println(jo.get("name"));}
//JSONObject遍历json对象
String json2 = "{name:'Wallace',age:15}";
jsonObj = new JSONObject(json2);
for (Iterator iter = jsonObj.keys(); iter.hasNext();) {String key = (String)iter.next();System.out.println(jsonObj .getString(Key));}
Ⅵ android怎么读取外部json文件
比如说读取sd卡里的
privatestaticStringSDCardPATH=Environment.getExternalStorageDirectory()+"/";
/**
*读取文本文件
*
*@paramfilePath
*@return
*/
(StringfilePath){
StringBuildersb=newStringBuilder();
try{
Filefile=newFile(SDCardPATH+filePath);
InputStreamin=null;
in=newFileInputStream(file);
inttempbyte;
while((tempbyte=in.read())!=-1){
sb.append((char)tempbyte);
}
in.close();
}catch(Exceptione){
e.printStackTrace();
}
returnsb.toString();
}
然后你就可以进行你的解析json了。
Ⅶ android 解析json二维数组
按javascript的语法存取和解析。你例子中有明显错误,js的数组和对象不分,php也不可能生成这样的json。
按javascript的语法存取和解析。学会js,按js的规矩办。
php下可用$a=json_decode()解码这个串,然后按js的规矩
echo $a[0]['uname'];显示York
echo $a[0]['tag']['2'];显示北京
可以用foreach逐层遍历,.和PHP的数组同样的。
Ⅷ android如何循环输出json数组
JSONArray array=new JSONArray(str_json_array);
for (int i = 0; i < array.length(); i++) {
JSONObject object=array.getJSONObject(i);
object.getString("这里是数据并袜颤对应绝败好磨的ID");
}
Ⅸ android怎么遍历jsonobject
android 读取json数据(遍历JSONObject和JSONArray)
•public String getJson(){
• String jsonString = "{\"FLAG\":\"flag\",\"MESSAGE\":\"SUCCESS\",\"name\":[{\"name\":\"jack\"},{\"name\":\"lucy\"}]}";//json字符串
• try {
• JSONObject result = new JSONObject(jsonstring);//转换为JSONObject
•族拍 int num = result.length();
• JSONArray nameList = result.getJSONArray("name");//获取JSONArray
• int length = nameList.length();
• String aa = "";
•兆伍羡 for(int i = 0; i < length; i++){//遍历JSONArray
• Log.d("debugTest",Integer.toString(i));
• JSONObject oj = nameList.getJSONObject(i);
• aa = aa + oj.getString("name")+"|";
•
• }
• Iterator<?> it = result.keys();
• String aa2 = "";
• String bb2 = null;
• while(it.hasNext()){//遍历JSONObject
• bb2 = (String) it.next().toString();
• aa2 = aa2 + result.getString(bb2);
•
•橘握 }
• return aa;
• } catch (JSONException e) {
• throw new RuntimeException(e);
• }
• }
Ⅹ android中解析json数据的org.json包中最重要
android中解析json数据的org.json包中最重要的是jsonarray。
jsonarray主要是解析json数据,因此四最重要的。
Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑。