本文目录一览:
- 1、android JSON文件解析! 求指点。
- 2、android怎么解析json文件
- 3、Android 如何引用本地json文件
- 4、android怎么读取外部json文件
- 5、android 在服务器端生成json格式数据,在客户端怎么解析
- 6、Android读取本地json文件的方法
android JSON文件解析! 求指点。
JSONObject jsonObj;
jsonObj = new JSONObject(str);//str为返回的json
//解析老师
JSONArray result = jsonObj.getJSONArray("老师");
ArrayListPerson list_laoshi=new ArrayListPerson();
for (int i = 0; i result.length(); i++) {
JSONObject jb = (JSONObject) result.opt(i);
Person laoshi=new Person();
laoshi.setId(jb.getString("id"));
laoshi.setName(jb.getString("name"));
laoshi.setType(jb.getString("type"));
list_laoshi.add(laoshi);
}
上面代码是把json文件中的老师解析成person对象加入集合,解析家人和同学方法一样,望采纳!
android怎么解析json文件
你好,我试过了,这样能取到你要的结果:
用的gson-2.2.4.jar包,你应该有吧,没有百度搜下去下个就好了。
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class MyTest {
public static void main(String[] args) {
String json = "{'resultcode':'200','reason':'ReturnSuccessd!','result':{'data':[{'MCC':'460','MNC':'1','LNG':'120.721423','LAT':'31.29854','O_LNG':'120.72577772352','O_LAT':'31.296529947917','PRECISION':'1101','ADDRESS':'江苏省苏州市吴中区金鸡湖大道368号'}]}}";
JsonParser jsonParser = new JsonParser();
JsonObject jsonObj = jsonParser.parse(json).getAsJsonObject();
JsonObject result = jsonObj.get("result").getAsJsonObject();
JsonArray data = result.get("data").getAsJsonArray();
String O_LNG = data.get(0).getAsJsonObject().get("O_LNG").getAsString();
String O_LAT = data.get(0).getAsJsonObject().get("O_LAT").getAsString();
String ADDRESS = data.get(0).getAsJsonObject().get("ADDRESS").getAsString();
System.out.println(O_LNG);
System.out.println(O_LAT);
System.out.println(ADDRESS);
}
}
Android 如何引用本地json文件
有时候遇到要一些模拟数据的时候,要么写个ListT,要么写死.
然后数据比较多的时候可以引用本地资源文件,记录下如何使用本地json文件
1在java同级目录下创建"assets"资源文件夹
2编辑json文本内容
至于json文件夹内容 就自定义了,想要什么内容写什么,对于一个做项目多了的开发者而言 json数据是熟悉到不能再熟悉的了
以下是我在淘宝一个个复制过来自己拼装的一些商品数据
不需要加任何标识,只需要标准的json数据格式就可以了
3引用和json解析的工具类,解析用的 Gson也是经常用到的
4最后在需要的地方引用,"ExchangeBean"是根据json内容写的一个模型,用于接收存放数据
有时间再补上demo,下面是效果图:
android怎么读取外部json文件
比如说 读取sd卡里的
private static String SDCardPATH = Environment.getExternalStorageDirectory() + "/";
/**
* 读取文本文件
*
* @param filePath
* @return
*/
public static String readTextFile(String filePath) {
StringBuilder sb = new StringBuilder();
try {
File file = new File(SDCardPATH + filePath);
InputStream in = null;
in = new FileInputStream(file);
int tempbyte;
while ((tempbyte = in.read()) != -1) {
sb.append((char) tempbyte);
}
in.close();
} catch (Exception e) {
e.printStackTrace();
}
return sb.toString();
}
然后你就可以进行你的解析json了。
android 在服务器端生成json格式数据,在客户端怎么解析
因为这次要从服务器端得到Json数据,并且通过解析之后把解析后的数据显示在Android客户端中,首先部署服务器端代码(直接使用Jsp/Servlet):
构造的Json数据如下:
[{"name":"张三","address":"北京","age":20},{"name":"李四","address":"上海","age":30},{"name":"王五","address":"深圳","age":35}]
[一]服务器端(Person.java省略):
①:数据构造JsonService.java
public class JsonService {
public static ListPerson getListPerson() {
ListPerson mLists = new ArrayListPerson();
mLists.add(new Person("张三", "北京", 20));
mLists.add(new Person("李四", "上海", 30));
mLists.add(new Person("王五", "深圳", 35));
return mLists;
}
②:Servlet的代码(包括构造Json数据,没有使用Json数据转换方法)JsonServlet.java
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
ListPerson persons = JsonService.getListPerson();
StringBuffer sb = new StringBuffer();
sb.append('[');
for (Person person : persons) {
sb.append('{').append("\"name\":").append("\""+person.getName()+"\"").append(","); sb.append("\"address\":").append("\""+person.getAddress()+"\"").append(",");
sb.append("\"age\":").append(person.getAge());
sb.append('}').append(",");
}
sb.deleteCharAt(sb.length() - 1);
sb.append(']');
out.write(new String(sb));
out.flush();
out.close();
}
③:部署到Tomact 浏览器输入直接访问结果如下:
[{"name":"张三","address":"北京","age":20},{"name":"李四","address":"上海","age":30},{"name":"王五","address":"深圳","age":35}]
至此服务器端代码编码完成,下面进行客户端代码编写; (二)客户端(Person类,和展示数据的布局文件因为简单省去) ①:获取服务器端的Json数据并且解析的工具类JsonParse.java 必要的需要导入的包省去
public class JsonParse {
/**
* 解析Json数据
*
* @param urlPath
* @return mlists
* @throws Exception
*/
public static ListPerson getListPerson(String urlPath) throws Exception {
ListPerson mlists = new ArrayListPerson();
byte[] data = readParse(urlPath);
JSONArray array = new JSONArray(new String(data));
for (int i = 0; i array.length(); i++) {
JSONObject item = array.getJSONObject(i);
String name = item.getString("name");
String address = item.getString("address");
int age = item.getInt("age");
mlists.add(new Person(name, address, age));
}
return mlists;
}
/**
* 从指定的url中获取字节数组
*
* @param urlPath
* @return 字节数组
* @throws Exception
*/
public static byte[] readParse(String urlPath) throws Exception {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] data = new byte[1024];
int len = 0;
URL url = new URL(urlPath);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStream inStream = conn.getInputStream();
while ((len = inStream.read(data)) != -1) {
outStream.write(data, 0, len);
}
inStream.close();
return outStream.toByteArray();
}
}
②:主Activity类
public class MainActivity extends Activity {
private Button mButton;
private ListView mListView;
//使用IP不能使用localhost或者127.0.0.1,因为android模拟器默认绑定这个IP,这里应该访问局域网IP
private static final String urlPath = "";
private static final String TAG = "MainActivity";
private ListPerson persons;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button) findViewById(R.id.button1);
mListView = (ListView) findViewById(R.id.listView1);
mButton.setOnClickListener(new MyOnClickListener());
}
private class MyOnClickListener implements OnClickListener {
@Override
public void onClick(View v) {
try {
// 得到Json解析成功之后数据
persons = JsonParse.getListPerson(urlPath);
ListHashMapString, Object data = new ArrayListHashMapString, Object();
for (int i = 0; i persons.size(); i++) {
HashMapString, Object map = new HashMapString, Object();
map.put("name", persons.get(i).getName());
map.put("address", persons.get(i).getAddress());
map.put("age", persons.get(i).getAge());
data.add(map);
}
//初始化适配器,并且绑定数据
SimpleAdapter _Adapter = new SimpleAdapter(MainActivity.this,
data, R.layout.listview_item, new String[] { "name",
"address", "age" }, new int[] { R.id.textView1,
R.id.textView2, R.id.textView3 });
mListView.setAdapter(_Adapter);
} catch (Exception e) {
Toast.makeText(MainActivity.this, "解析失败", 2000).show();
Log.i(TAG, e.toString());
}
}
}
Android读取本地json文件的方法
本文实例讲述了Android读取本地json文件的方法。分享给大家供大家参考,具体如下:
1、读取本地JSON ,但是显示汉字乱码
public static String readLocalJson(Context context, String fileName){ String jsonString=""; String resultString=""; try { BufferedReader bufferedReader=new BufferedReader(new InputStreamReader( context.getResources().getAssets().open(fileName))); while ((jsonString=bufferedReader.readLine())!=null) { resultString+=jsonString; } } catch (Exception e) { // TODO: handle exception } return resultString;}
2、读取本地JSON,显示汉字正确,txt文件设置时UTF-8,UNIX
public static String readLocalJson(Context context, String fileName){ String jsonString=""; String resultString=""; try { InputStream inputStream=context.getResources().getAssets().open(fileName); byte[] buffer=new byte[inputStream.available()]; inputStream.read(buffer); resultString=new String(buffer,"GB2312"); } catch (Exception e) { // TODO: handle exception } return resultString;}