来自服务器的JSON数组获得两个值

时间:2017-09-09 12:56:20

标签: java android json

我是编程新手并原谅我的问题。我目前从远程服务器获取列 officer_name 。将其解析为JSON并发送到应用程序。但我想添加另一个带有INT数据类型的列数据引用,并将其与 officer_name 一起发送到App。我怎么能实现这样的呢?

sql查询

$sql = "select officer_name from user_tbl where user_name like '".$user_name."' and password like '".$password."' and activate = 1;";
$result = mysqli_query($con,$sql);
$response = array();
if (mysqli_num_rows($result)>0)
{
$row = mysqli_fetch_row($result);
$officer_name = $row[0];
$code = "Login_Success";
array_push($response,array("code"=>$code,"officer_name"=>$officer_name));
echo json_encode($response);

获取JSON的Android Java代码

public void onResponse(String response) {
                                try {
                                    JSONArray jsonArray = new JSONArray(response);
                                    JSONObject jsonObject = jsonArray.getJSONObject(0);
                                    String code = jsonObject.getString("code");
                                    if (code.equals("Login_Failed"))
                                    {
                                        builder.setTitle("Login Error");
                                        displayAlert(jsonObject.getString("message"));
                                    }
                                    else
                                    {
                                        Intent intent = new Intent(Login.this,MainActivity.class);
                                        Bundle bundle = new Bundle();
                                        bundle.putString("officer_name", jsonObject.getString("officer_name"));
                                        intent.putExtras(bundle);
                                        startActivity(intent);
                                    }

截至目前,我只从服务器获取官方名称。我想从我的数据库中添加一个数据 reference 列,其中包含INT值。

1 个答案:

答案 0 :(得分:0)

它看起来像是因为你只选择OFFICER_NAME而没有其他专栏。 当您想要选择更多时,只需键入(SELECT officer_name,data_u_want2,data_u_need3 FROM等..)

我的获取userdata的脚本看起来通常是这样的:

java -ea -classpath ~/javaml/bin/:~/Randoop/randoop-all-3.1.4.jar  randoop.main.Main gentests --testclass=net.sf.javaml.core.Complex --literals-file=CLASSES

你应该在将来使用预备语句来防止sql注入。

您可以将$ username更改为$ officer_name或其他任何内容,并将您想要的columnts放入$ response