Ⅰ android如何將list轉化為json
可以通過jsonObject作為中間轉換橋梁,先把你的list轉換為jsonObject,然後jsonObject toString(),即可轉換為json字元串。但是過於復雜的map對象貌似不行,這樣你就只有自己寫了
Ⅱ java用服務端怎麼用json數據傳輸到安卓客戶端
java用服務端怎麼用json數據傳輸到安卓客戶端
public class MainActivity extends Activity
{
private Button submit = null;
URL url = null;
String urlPath = "http://10.0.3.2:8080/XMLParse/AcceptJsonServlet";
EditText name = null;
EditText age = null;
EditText address = null;
Handler handler = new Handler()
{
public void handleMessage(Message msg)
{
if (msg.what == 0x123)
{
Toast.makeText(MainActivity.this,
"發送成功", Toast.LENGTH_LONG)
.show();
}
else
{
Toast.makeText(MainActivity.this,
"發送失敗", Toast.LENGTH_LONG)
.show();
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name = ((EditText) findViewById(R.id.name));
age = ((EditText) findViewById(R.id.age));
address = ((EditText) findViewById(R.id.address));
submit = (Button) findViewById(R.id.submit);
submit.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
new Thread()
{
public void run()
{
JSONObject js = new JSONObject();
JSONObject params = new JSONObject();
// JSONArray array = new JSONArray();
Person p = new Person(name.getText().toString(), age
.getText().toString(), address.getText()
.toString());
// 封裝子對象
try
{
js.put("name", p.getName());
js.put("age", p.getAge());
js.put("address", p.getAddress());
// 封裝Person數組
params.put("Person", js);
}
catch (JSONException e)
{
e.printStackTrace();
}
// 把Json數據轉換成String類型,使用輸出流向伺服器寫
final String content = String.valueOf(params);
try
{
url = new URL(urlPath);
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
conn.setConnectTimeout(5000);
conn.setDoOutput(true);// 設置允許輸出
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type",
"application/json; charset=UTF-8"); // 內容類型
OutputStream os = conn.getOutputStream();
os.write(content.getBytes());
os.close();
if (conn.getResponseCode() == 200)
{
handler.sendEmptyMessage(0x123);
}
else
{
handler.sendEmptyMessage(0x122);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}.start();
Ⅲ android載入assets中的json格式文件
assets資源目錄一般用於存放html文件、資料庫文件、javascript文件,assets目錄下的文件不會在R.java自動生成ID,所以讀取assets目錄下的文件必須指定文件的路徑
在代碼中使用AssertManager獲取文件的輸入流讀取
AssetManagerassetManager=context.getAssets();
try{
InputStreamis=assetManager.open("json.data");
BufferedReaderbr=newBufferedReader(newInputStreamReader(is));
StringBufferstringBuffer=newStringBuffer();
Stringstr=null;
while((str=br.readLine())!=null){
stringBuffer.append(str);
}
}catch(IOExceptione){
e.printStackTrace();
}
也可以把json文件放在res的raw目錄下
res/raw中的文件會被映射到R.java文件中,訪問的時候直接使用資源ID即R.id.filename;
但是需要注意的是assets允許有目錄結構,而raw不行
讀取方法大同小異
try{
InputStreamis=getResources().openRawResource(R.id.file);
BufferedReaderbr=newBufferedReader(newInputStreamReader(is));
StringBufferstringBuffer=newStringBuffer();
Stringstr=null;
while((str=br.readLine())!=null){
stringBuffer.append(str);
}
}catch(IOExceptione){
e.printStackTrace();
}
Ⅳ android、java解析string中的鍵值對問題
可以用JSON解析!你寫一個屬性跟他一樣的java類!然後用JSON反轉成OBJECT就可以了!