欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

android解析json,Android解析json

android json解析成map格式

先看json數(shù)據(jù)

成都創(chuàng)新互聯(lián)技術(shù)團(tuán)隊(duì)10年來致力于為客戶提供成都網(wǎng)站建設(shè)、做網(wǎng)站、高端網(wǎng)站設(shè)計(jì)成都全網(wǎng)營銷、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗(yàn)豐富的技術(shù)團(tuán)隊(duì),先后服務(wù)、推廣了千余家網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。

之前使用的是gson解析,把 discount 寫成Object格式,但是通過解析之后轉(zhuǎn)成String類型,成為

這種明顯沒有辦法解析成map集合

使用原始的Json解析,一層一層的找到這個(gè)對(duì)象,轉(zhuǎn)成String類型成為

這種情況下就可以了 之后是copy的解析方法

第一種方法是

第二種是

這樣就可以獲取到map集合了

android中這樣的JSON數(shù)據(jù)應(yīng)該如何解析,

//json我的理解就是一系列鍵值對(duì),只要KEY值對(duì)了,對(duì)應(yīng)數(shù)據(jù)格式也對(duì)了,那就可以了!~

JsonObject j = ...//此處是獲取json的方法,自定

boolean b = j.getBoolean("result");//取出“result”對(duì)應(yīng)的值,這里的結(jié)果應(yīng)該

//是"true";

JsonArray ja = j.getJsonArray("asks");//取出“asks”對(duì)應(yīng)的值,因?yàn)閍sks對(duì)應(yīng)的值

//中含有方括號(hào),所以這是JsonArray型數(shù)據(jù),需要取出進(jìn)一步解析;JsonArray可以與數(shù)組

//進(jìn)行比較理解,我個(gè)人是這樣的,供參考

for(int i = 0; i ja.length(); i++){

JsonArray ja1 = ja.getJsonArray(i);//獲取ja中的第一個(gè)元素,因?yàn)檫@個(gè)元素

//也是jsonArray,所以可以再進(jìn)一步解析

double d1 = ja1.getDouble(0);//jsonArray中沒有g(shù)etFloat()這個(gè)方法

//,自行轉(zhuǎn)型就可以了

double d2 = ja1.getDouble(1);//

} 以上,希望對(duì)你有所幫助

Android 解析json問題

Android 解析json的方式為:

1、首先,搭建一個(gè)服務(wù)器的工程:JsonProject這個(gè)項(xiàng)目

源代碼:

Person.java

package com.json.domain;

public class Person {

private int id;

private String name;

private String address;

public Person() {

super();

}

public Person(int id, String name, String addrss) {

super();

this.id = id;

this.name = name;

this.address = addrss;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

@Override

public String toString() {

return "Person [addrss=" + address + ", id=" + id + ", name=" + name

+ "]";

}

}

JsonService.java

package com.json.service;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import com.json.domain.Person;

public class JsonService {

public JsonService() {

}

public Person getPerson(){

Person person = new Person(1001,"jack","上海黃浦區(qū)");

return person;

}

public ListPerson getListPerson(){

ListPerson list = new ArrayListPerson();

Person person1 = new Person(1001,"jack","上海黃浦區(qū)");

Person person2 = new Person(1002,"rose","上海閔行區(qū)");

Person person3 = new Person(1003,"mick","上海黃浦區(qū)");

list.add(person1);

list.add(person2);

list.add(person3);

return list;

}

public ListString getListString(){

ListString list = new ArrayListString();

list.add("北京");

list.add("上海");

list.add("湖南");

return list;

}

public ListMapString,Object getListMaps(){

ListMapString,Object list = new ArrayListMapString,Object();

MapString,Object map1 = new HashMapString, Object();

MapString,Object map2 = new HashMapString, Object();

map1.put("id", 1001);

map1.put("name", "jack");

map1.put("address", "北京");

map2.put("id", 1001);

map2.put("name", "rose");

map2.put("address", "上海");

list.add(map1);

list.add(map2);

return list;

}

}

JsonServlet.java

package com.json.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.json.service.JsonService;

import com.json.tools.JsonTools;

public class JsonServlet extends HttpServlet {

private JsonService service;

/**

* Constructor of the object.

*/

public JsonServlet() {

super();

}

/**

* Destruction of the servlet. br

*/

public void destroy() {

super.destroy(); // Just puts "destroy" string in log

// Put your code here

}

/**

* The doGet method of the servlet. br

*

* This method is called when a form has its tag value method equals to get.

*

* @param request the request send by the client to the server

* @param response the response send by the server to the client

* @throws ServletException if an error occurred

* @throws IOException if an error occurred

*/

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

this.doPost(request, response);

}

/**

* The doPost method of the servlet. br

*

* This method is called when a form has its tag value method equals to post.

*

* @param request the request send by the client to the server

* @param response the response send by the server to the client

* @throws ServletException if an error occurred

* @throws IOException if an error occurred

*/

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=utf-8");

request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8");

PrintWriter out = response.getWriter();

String jsonString = "";

String action_flag = request.getParameter("action_flag");

if(action_flag.equals("person")){

jsonString = JsonTools.createJsonString("person", service.getPerson());

}else if(action_flag.equals("persons")){

jsonString = JsonTools.createJsonString("persons", service.getListPerson());

}else if(action_flag.equals("listString")){

jsonString = JsonTools.createJsonString("listString", service.getListString());

}else if(action_flag.equals("listMap")){

jsonString = JsonTools.createJsonString("listMap", service.getListMaps());

}

out.println(jsonString);

out.flush();

out.close();

}

/**

* Initialization of the servlet. br

*

* @throws ServletException if an error occurs

*/

public void init() throws ServletException {

service = new JsonService();

}

}

2、通過瀏覽器

訪問地址一:

輸出以下結(jié)果:

{"person":{"address":"上海黃浦區(qū)","id":1001,"name":"jack"}

訪問地址二:

輸出以下結(jié)果:

{"persons":[{"address":"上海黃浦區(qū)","id":1001,"name":"jack"},{"addrss":"上海閔行區(qū)","id":1002,"name":"rose"},{"address":"上海黃浦區(qū)","id":1003,"name":"mick"}]}

訪問地址三:

輸出以下結(jié)果:

{"persons":["北京","上海","湖南"]}

訪問地址四:

輸出以下結(jié)果:

{"persons":[{"id":1001,"address":"北京","name":"jack"},{"id":1001,"address":"上海","name":"rose"}]}

android json解析三種方式哪種效率最高

用org.json以及谷歌提供gson來解析json數(shù)據(jù)的方式更好一些。

安卓下通常采用以下幾種方式解析json數(shù)據(jù):

1、org.json包(已經(jīng)集成到android.jar中了)

2、google提供的gson庫

3、阿里巴巴的fastjson庫

4、json-lib

以Google出品的Gson為例,具體步驟為:

1、首先,從 code.google.com/p/google-gson/downloads/list下載GsonAPI:

google-gson-1.7.1-release.zip 把gson-1.7.jar copy到libs(項(xiàng)目根目錄新建一個(gè)libs文件夾)中。 可以使用以下兩種方法解析JSON數(shù)據(jù),通過獲取JsonReader對(duì)象解析JSON數(shù)據(jù)。

代碼如下:

String jsonData = "[{\"username\":\"arthinking\",\"userId\":001},{\"username\":\"Jason\",\"userId\":002}]";

try{

JsonReader reader = new JsonReader(new StringReader(jsonData));

reader.beginArray();

while(reader.hasNext()){

reader.beginObject();

while(reader.hasNext()){

String tagName = reader.nextName();

if(tagName.equals("username")){

System.out.println(reader.nextString());

}

else if(tagName.equals("userId")){

System.out.println(reader.nextString());

}

}

reader.endObject();

}

reader.endArray();

}

catch(Exception e){

e.printStackTrace();

}

2、使用Gson對(duì)象獲取User對(duì)象數(shù)據(jù)進(jìn)行相應(yīng)的操作:

代碼如下:

Type listType = new TypeTokenLinkedListUser(){}.getType();

Gson gson = new Gson();

LinkedListUser users = gson.fromJson(jsonData, listType);

for (Iterator iterator = users.iterator(); iterator.hasNext();) {

User user = (User) iterator.next();

System.out.println(user.getUsername());

System.out.println(user.getUserId());

}

3、如果要處理的JSON字符串只包含一個(gè)JSON對(duì)象,則可以直接使用fromJson獲取一個(gè)User對(duì)象:

代碼如下:

String jsonData = "{\"username\":\"arthinking\",\"userId\":001}";

Gson gson = new Gson();

User user = gson.fromJson(jsonData, User.class);

System.out.println(user.getUsername());

System.out.println(user.getUserId());

網(wǎng)頁標(biāo)題:android解析json,Android解析json
文章出自:http://chinadenli.net/article9/dsicgih.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司網(wǎng)站導(dǎo)航商城網(wǎng)站網(wǎng)站維護(hù)網(wǎng)站收錄域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作