安卓用什麼軟體運行json
① android 解析json用那個包裡面的方法比較好呢
android 解析json還有用Google出品的Gson比較好,具體步驟為:
1、首先,從 code.google.com/p/google-gson/downloads/list下載GsonAPI:
google-gson-1.7.1-release.zip 把gson-1.7.jar 到libs(項目根目錄新建一個libs文件夾)中。 可以使用以下兩種方法解析JSON數據,通過獲取JsonReader對象解析JSON數據。
代碼如下:
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對象獲取User對象數據進行相應的操作:
代碼如下:
Type listType = new TypeToken<LinkedList<User>>(){}.getType();
Gson gson = new Gson();
LinkedList<User> 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字元串只包含一個JSON對象,則可以直接使用fromJson獲取一個User對象:
代碼如下:
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());
② 安卓使用json和ios使用json的區別
一、 XML:用到一個開源解析類,GDataXMLNode(將其加入項目中),添加libxml2.dylib框架 經常用到的方法: 1.- (id)initWithXMLString:(NSString *)str options:(unsigned int)mask error:(NSError *)error 2.- (id)initWithData:(NSData *)data options:(unsigned int)mask error:(NSError *)error 這兩個方法可以將NSString類型或者NSData類的數據轉化為GDataXMLNode類可以解析的XML文檔 3.- (GDataXMLElement *)rootElement 返回GDataXMLElement中所有節點信息 4.- (NSArray *)elementsForName:(NSString *)name 返回當前節點下名稱為name的所有節點,返回值為數組。 5.- (NSString *)stringValue 返回節點中間的值。 二、 JSON:用到開源的框架SBJSON,對NSString類的擴展,我們程序中的所有NSString對象都可以調用其中的方法。 SBJSON的方法- (id)JSONValue 此方法返回一個ID類對象,因為JSON信息都是以鍵值來傳輸的,所以我們會用NSDictionary來接收這個返回值。 兩種結構: 1.「鍵值對」的集合。對象(object),記錄(Record),結構(struct),字典(dictionary),哈希表(hashtable),鍵列表(keyed list),關聯數組(assoc...
③ 有沒有好的安卓json編輯軟體
你好,編程就很好用,在應用寶下載就可以了,它上面不光是軟體和游戲齊全,而且軟體和游戲的兼容性很好,不會和手機發生什麼沖突,不會安裝不了或者安裝了打不開之類的。軟體都是安全的在正式版本呢,除了軟體還能下載其他的,音樂壁紙電子書等。
④ 手機安卓版,百度文庫下載文檔後為什麼是json文件
網路文庫安卓版文件下載之後的根目錄在wenku——download中,可以導出,用數據線、藍牙、手機助手等連接手機和電腦即可。但是網路文庫手機版下載的文件格式都是.json和.info,是只能使用網路文庫APP瀏覽,無法使用office軟體打開。
如果要下載PPT、word、excel、pdf等格式的文件,只能在電腦端網路文庫下載。
⑤ android用volley怎麼給伺服器發送json
1.下載官網的android SDK(本人用的是eclipse)
2.新建一個android項目:
File->new->andriod Application project
7、下面就是具體的使用post和get請求的代碼:
A:發送get請求如下:
package com.example.xiaoyuantong;
import java.util.HashMap;
import java.util.Iterator;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
/**
* Demo
*/
public class MainActivity extends Activity {
private RequestQueue requestQueue ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
TextView textView = (TextView)findViewById(R.id.textView);
requestQueue = Volley.newRequestQueue(this);
getJson();
textView.setText("hello");
}
private void getJson(){
String url = "http://192.168.20.1:8080/xiaoyuantong/userAction!register.action?pwd='測試'";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
Request.Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
//這里可以列印出接受到返回的json
Log.e("bbb", response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
// System.out.println("sorry,Error");
Log.e("aaa", arg0.toString());
}
});
requestQueue.add(jsonObjectRequest);
}
}
B:發送post請求如下:
package com.example.xiaoyuantong;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONException;
import org.json.JSONObject;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;
public class PostActivity extends Activity {
private RequestQueue requestQueue ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_post);
init();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.post, menu);
return true;
}
private void init() {
TextView textView = (TextView)findViewById(R.id.postView);
requestQueue = Volley.newRequestQueue(this);
getJson();
textView.setText("hellopost");
}
private void getJson(){
String url = "http://192.168.20.1:8080/xiaoyuantong/userAction!reg.action";
JsonObjectRequest jsonObjectRequest ;
JSONObject jsonObject=new JSONObject() ;
try {
jsonObject.put("name", "張三");
jsonObject.put("sex", "女");
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//列印前台向後台要提交的post數據
Log.e("post",jsonObject.toString());
//發送post請求
try{
jsonObjectRequest = new JsonObjectRequest(
Request.Method.POST, url, jsonObject,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
//列印請求後獲取的json數據
Log.e("bbb", response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
// System.out.println("sorry,Error");
Log.e("aaa", arg0.toString());
}
});
requestQueue.add(jsonObjectRequest);
} catch (Exception e) {
e.printStackTrace();
System.out.println(e + "");
}
requestQueue.start();
}
}
8、在android的logcat裡面能查看到列印的請求
(紅色的顯示的是我在後台請求到數據)
有時候logcat顯示不出數據,可能是消息被過濾了,可以在左邊點擊「減號」刪除過濾
在server端,也就是在myeclipse的建立的另一個後台工程裡面能獲取到請求:
9、後續會補充json數據的解析部分,以及過度到移動雲的部分,上面只是c/s模式下的一個簡單的基於http的請求應答例子。
⑥ 安卓開發 FlatBuffers能夠替代JSON 嗎
FlatBuffers vs JSON
你也許會問:既然我們已經有了標準的JSON、GSON和Jackson,為何還要使用新的工具呢?
你不妨試試FlatBuffers,你就會發它們比JSON快多了。
FlatBuffers是什麼?
FlatBuffers是一個跨平台標准化的C++、C#、C、Go、Java、JavaScript、PHP和Python庫。它們最早由谷歌創立,用來開發游戲和其他一些需要高性能的程序。
為什麼使用latBuffers?
無需分解/拆包就能使用序列化數據——FlatBuffers最大的特點,就是它可以在二進制文件緩沖區內代表分層數據,也就是說,在無需分解和拆包的情況下,它們就可以被使用,而且同時支持數據架構演變(支持向前和向後)。
內存效率與速度——獲取數據所需的唯一內存,就是緩沖內存。它不需要任何額外的內存分配(至少在C++中不需要。其它語言可能會有所不同)。
FlatBuffers還適用於mmap,內存只需要緩沖的一部分。數據使用的速度接近原架構,只需要一個額外的間接引用來允許格式演化和非強制性欄位。
FlatBuffers瞄準的是那些消耗大量時間和空間(許多許多的內存分配)的項目,它讓這些項目可以使用或架構那些不受歡迎的序列號數據,例如
FlatBuffers可以運用在游戲,或是其他需要消耗性能的應用中。
靈活性——擁有非強制性欄位意味著你不僅可以獲得優秀的前進和後退能力(在游戲中非常重要,你無需再每一個新版本中對所有數據都進行更新),還意味著你在數據寫入和放棄方面,你擁有了更多的選擇,在設計數據結構上面,你也有更多的選擇。
對代碼數量需求低——FlatBuffers只需要很少的代碼,以及非常易於真核的單一小標題作為最小依賴。
編寫簡單——在使用的時候,錯誤在編寫階段就能體現出來,而不需要你進行反復的代碼編寫,也不需要進行運行時檢查。它還會為你生成一些有用的代碼。
使用方便——它所生成的C++代碼便於訪問,可用在結構代碼中。它還有一個用於分解綱要的可選功能,以及類似JSON的文本表達功能,可以在運行時有效運轉(相比JSON分解器速度更快,對內存的使用率也更高)。
跨平台,無依賴——C++代碼可以兼容任何最近的gcc/clang和VS2010。它還內置了一個用於測試和樣品的構建文件(安卓.mk文件,以及支持所有其他平台的cmake文件)。
是誰在使用FlatBuffers
BobbleApp是印度最受歡迎的表情貼紙應用。他們在使用FlatBuffers的過程中,大幅的提升了應用的性能。Cocos2d-x是排名第一的開源移動游戲引擎,他們也在使用Cocos2d-x來將游戲數據進行序列化處理。
Facebook也在使用FlatBuffers,他們用它來構建安卓應用中的客戶服務溝通功能。他們曾經發布了一篇文章,講述FlatBuffers對他們的幫助。
谷歌的Fun Propulsion Labs使用FlatBuffers在庫和游戲的開發中大量使用FlatBuffers。
應用性能有多大的提升?
分解速度方面,在JSON上處理20KB的數據需要35毫秒,超過了UI框架刷新的間隔(16.6毫秒)。在使用JSON的時候,我們無法給用戶帶來順滑的應用體驗,他們在滾動UI的時候,會感到明顯的延遲。
分解初始化方面。JSON的分解器需要在分解前構建field mapping,通常需要100-200毫秒。這會大大延長應用的啟動時間。
垃圾收集方面,在JSON進行分解的過程中,會產生大量小對象,我們發現,當JSON對20KB的數據進行分解的時候,需要為其指派100KB的內存空間,這個Java的垃圾收集器造成了巨大的壓力。
FlatBuffer vs JSON
我
曾經做過這樣的實驗,分別用FlatBuffer和JSON對4mb的文件進行分解,FlatBuffer需要1-5毫秒,而JSON需要2000毫秒。
在使用FlatBuffer的時候,應用無需調用GC;而在使用JSON的時候,GC需要被調用多次。因此,在使用JSON的時候,應用UI凍結,我只能
選在在背景中讓JSON完成分解。
⑦ json不是一般用在安卓開發上嗎,在網站開發能用上嗎
json可以用於很多地方開發的,網站開發可以使用,安卓開發也可以使用,ios開發也可以使用!
⑧ 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;
}
⑨ 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了。
⑩ json是什麼格式,在安卓手機上用什麼打開
json就是一個字元串,類似樹形結構。
只要沒加過密,一般的文本編輯器就可以打開。