本文目錄一覽:
- 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;}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/308328.html