㈠ 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
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
importjava.util.Iterator;
importjava.util.Map.Entry;
importjava.util.Set;
importcom.google.gson.JsonArray;
importcom.google.gson.JsonElement;
importcom.google.gson.JsonObject;
importcom.google.gson.JsonParser;
publicclassJU
{
publicstaticvoidmain(String[]args)
{
Stringjson=
"{"showapi_res_code":0,"showapi_res_error":"","showapi_res_body":{"ret_code":0,"basic":{"explains":["n.技術;工藝;術語"]}}}";
JsonParserparser=newJsonParser();
JsonObjectobj=(JsonObject)parser.parse(json);
System.out.println(obj);
dir(obj);
}
privatestaticvoiddir(Objectobj)
{
if(objinstanceofJsonObject)
{
JsonObjectobject=(JsonObject)obj;
Set<Entry<String,JsonElement>>entry=object.entrySet();
Iterator<Entry<String,JsonElement>>it=entry.iterator();
while(it.hasNext())
{
Entry<String,JsonElement>elem=it.next();
Stringkey=elem.getKey();
JsonObjectoob;
try
{
oob=(JsonObject)elem.getValue();
System.out.println(key+"--->"+oob);
dir(oob);
}
catch(Exceptione)
{
JsonElementelement=elem.getValue();
System.out.println(key+"--->"+element);
dir(element);
}
}
}
elseif(objinstanceofJsonArray)
{
JsonArrayarray=(JsonArray)obj;
for(inti=0;i<array.size();i++)
{
JsonElementelement=array.get(i);
System.out.print(element+"");
dir(element);
}
}
}
}
㈣ Android 解析 嵌套的JsonArray 這個具體該怎麼解析呢
String json = "";
try {
JSONArray arr = new JSONArray(json);
for (int i=0; i<arr.length(); i++) {
JSONObject obj = arr.getJSONObject(i);
String secondId = obj.getString("secondId");
String lessonpId = obj.getString("lessonpId");
String secondTitle = obj.getString("secondTitle");
JSONArray recordArr = obj.getJSONArray("record");
for (int j=0; j<recordArr.length(); j++) {
JSONObject recordObj = recordArr.getJSONObject(j);
// String secondId2 = recordObj.getString("secondId");
String threeTitle = recordObj.getString("threeTitle");
String threeId = recordObj.getString("threeId");
}
}
} catch (JSONException e) {
e.printStackTrace();
}
㈤ android開發用gson解析json字元串,如果鍵不是固定值怎麼辦
這樣沒試過,不過我認為可以將json中鍵值不固定的存在JSONArray中訪問時奇數位保存鍵,偶數保存值;也可以只傳斗早值;還有就是多層嵌套(例如:假設字母表示鍵,數字表示值:a:2,b:5替換成空好雀i:a,ii:2,iii:b,iiii:5這意思就是將鍵與值都作為值傳過來)。要麼每一次變化都寫一個類來與之對應,不同襪岩的時候用不同的類的實例接收
㈥ Android怎麼解析json,json文本用鏈接給出來
額,是json數據格式 返回的帶有html標簽的文本。
㈦ Android jason數據的解析
1. Jason不知道是個什麼東西,是Json吧?
2. URL裡面不能包含這樣的參數吧,因該是訪問URL返回的值是個Json串。
//Gson用法
Gsongson=newGson();
gson.fromJson(string,clazz);
有你的代碼我寫了這么一個類:
classStudent{
//注意變數名稱與Json串裡面的關鍵字必須相同
privateintid;
privateStringname;
private拍神intage;
/**
高擾*注意必須為所有的變數加上getter和setter,Gson會使用注入方式為變數賦值
*這里我就省略了
*/
}
//使用方法如下:
Stringresponse;//訪問URL返回結果Json串
Gsongson=newGson();
Objectobject=gson.fromJson(response,Student.class戚賀旦);
Studentstudent=(Student)object;
即使這樣,希望能夠幫到你!
㈧ Android使用Gson解析網路介面返回的Json數據
Gson挺好用的,可以把json串直接解析成bean對象,或者把對象滲凱轉換成json串,數據解析的時岩州候先創建Gson對象
GsonmGson叢棗喚=newGson();
然後再把json串解析成bean對象
Beanbean=mGson.fromJson(json,Bean.class);
如果想把對象轉成json串可以用gson的toJson方法
Stringjson=mGson.toJson();
純手打,滿意請採納
㈨ 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 List<Person> getListPerson() {
List<Person> mLists = new ArrayList<Person>();
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();
List<Person> 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 瀏覽器輸入http://localhost/JsonWeb/JsonServlet直接訪問結果如下:
[{"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 List<Person> getListPerson(String urlPath) throws Exception {
List<Person> mlists = new ArrayList<Person>();
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 = "http://10.16.31.207/JsonWeb/JsonServlet";
private static final String TAG = "MainActivity";
private List<Person> 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);
List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
for (int i = 0; i < persons.size(); i++) {
HashMap<String, Object> map = new HashMap<String, 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解析介面(本人新手,請大手幫忙解決下)
fastjson.jar這個jar包可以方便的幫你解析json格式數據:
你可以參考下我這塌飢斗段代碼:
public Object parseMap_Sub(String str) {
try {
Map<String, Object> map = JSON.parseObject(str);
JSONArray jsonArray = (JSONArray) map.get("data");
List<NearMap_Info> list_detial = new ArrayList<NearMap_Info>();
for (Object o : jsonArray) {
Map<String, String> map_1 = (Map<String, String>) o;
NearMap_Info audio_info = new NearMap_Info();
//團磨audio_info.setSize((String) map.get("size"));
audio_info.setFlag(map_1.get("flag"));
audio_info.setTitle(map_1.get("title"));
audio_info.setUrl(map_1.get("url"));
audio_info.setType(map_1.get("type"));
audio_info.setId(map_1.get("id"肢答));
audio_info.setImg(map_1.get("img"));
list_detial.add(audio_info);
}
ro.result = true;
ro.obj = list_detial;
} catch (Exception e) {
e.printStackTrace();
ro.result = false;
}
return ro;
}