gpt4 book ai didi

android - 如何在Android中解析JSON数据

转载 作者:行者123 更新时间:2023-11-29 22:17:14 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Sending and Parsing JSON in Android

我正在从服务器获取 JSON 数据,并且我已经通过代码获取了 JSON 数据。但我不明白如何解析它。

这是我的服务器代码,我从 mysql 数据库中获取数据,然后发送到 android设备

   import java.io.*;
import java.util.*;
import javax.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import net.sf.json.JSONArray;

public class DBConnection extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException, ServletException{

response.setContentType("text/html");
PrintWriter out = response.getWriter();

// connecting to database
Connection con = null;
Statement stmt = null;
ResultSet rs = null;

try {
Class.forName("com.mysql.jdbc.Driver");
con =DriverManager.getConnection("jdbc:mysql://localhost:3306/emarnew", "root","12345");
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT * FROM allpatientdetails WHERE patientname='Mr Hans Tan'");


// displaying records
while(rs.next()){
JSONArray arrayObj=new JSONArray();
String name="patientname"+rs.getObject(1).toString();
arrayObj.add(name);

arrayObj.add(rs.getObject(2).toString());
arrayObj.add(rs.getObject(3).toString());
arrayObj.add(rs.getObject(4).toString());
arrayObj.add(rs.getObject(5).toString());
arrayObj.add(rs.getObject(6).toString());
arrayObj.add(rs.getObject(7).toString());
arrayObj.add(rs.getObject(8).toString());
String nik =arrayObj.toString();

// fetch the parameters from client..

final String user = request.getParameter("UID");
// out.print(user);

if("patients".equals(user))
out.print(nik);
else
out.println("fail");

// out.print(nik);
// out.print("\t\t\t");
// out.print("<br>");

}
} catch (SQLException e) {
throw new ServletException("Servlet Could not display records.", e);
} catch (ClassNotFoundException e) {
throw new ServletException("JDBC Driver not found.", e);
} finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt = null;
}
if(con != null) {
con.close();
con = null;
}
} catch (SQLException e) {}
}

out.close();
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
this.doGet(request, response);
}


}

这是我的安卓代码 导入 java.util.ArrayList; 导入 java.util.List;

       import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class ClientActivity extends Activity
{
TextView tv;
public StringBuffer buffer;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv= (TextView)findViewById(R.id.tv);

try {
HttpClient client = new DefaultHttpClient();
String postURL = "http://10.0.2.2:8080/nik/DBConnection?UID=patients";
HttpPost post = new HttpPost(postURL);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("UID", "patients"));
//params.add(new BasicNameValuePair("pass", "xyz"));
UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params,HTTP.UTF_8);
post.setEntity(ent);
HttpResponse responsePOST = client.execute(post);
HttpEntity resEntity = responsePOST.getEntity();
if (resEntity != null) {
//Log.i("RESPONSE",EntityUtils.toString(resEntity));
buffer = new StringBuffer("");
buffer.append(EntityUtils.toString(resEntity));

}

String String1= buffer.toString();
Log.i("string-----",String1);
tv.append(String1);



} catch (Exception e) {
e.printStackTrace();
}

try {
HttpClient client = new DefaultHttpClient();
String getURL = "http://10.0.2.2:8080/nik/DBConnection?UID=patients";
HttpGet get = new HttpGet(getURL);
HttpResponse responseGet = client.execute(get);
HttpEntity resEntityGet = responseGet.getEntity();
if (resEntityGet != null) {
//do something with the response
Log.i("GET RESPONSE",EntityUtils.toString(resEntityGet));

}
} catch (Exception e) {
e.printStackTrace();
}
}
}

这就是我得到 Hans Tan 先生的结果","S2234567","75945422","20-11-1971","慢性丙型肝炎","Copegus 400 mg","8","Ward3A-1,301",但我需要解析它,所以请提供任何帮助。在此先感谢

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com