Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从php中获得结果?_Java_Php_Android - Fatal编程技术网

Java 如何从php中获得结果?

Java 如何从php中获得结果?,java,php,android,Java,Php,Android,DB中有一些值,我正在创建一个搜索函数 <?php require_once 'conn.php'; if(isset($_GET['name'])) { $name = $_GET['name']; $query = "SELECT `NAME`, AGE, `ADDRESS` FROM test WHERE `NAME` = '$name'"; $result = mysqli_query($conn, $query); $re

DB中有一些值,我正在创建一个搜索函数

<?php

require_once 'conn.php';

if(isset($_GET['name'])) {
    $name = $_GET['name'];
    $query = "SELECT `NAME`, AGE, `ADDRESS` FROM test WHERE `NAME` = '$name'";
    $result = mysqli_query($conn, $query);

    $response = array();
    while($row = mysqli_fetch_array($result)) {
        array_push(
            $response, array(
                'name'=>$row['NAME'],
                'age'=>$row['AGE'],
                'address'=>$row['ADDRESS'])
            );
    }

    if(count($response) == 0) {
        $res = 'Empty Result';
        echo $res;
    } else {
        echo json_encode($response);
    }
}

mysqli_close($conn);

?>
但是如果我现在运行代码,
com.google.gson.stream.MalformedJsonException:使用JsonReader.setLenient(true)在第1行第1列路径$
处接受格式错误的JSON

如何在Android中获得
空结果

++添加我的POJO

public class Person {
    @SerializedName("name") private String name;
    @SerializedName("age") private int age;
    @SerializedName("address") private String address;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

这是因为该值不能被解析为JSON。 您可以使用json的统一返回格式

if(count($response) == 0) {

    echo json_encode([
           "result" => "Empty Result",
            "data" => $response
         ]);
} else {
    echo json_encode([
           "result" => "Has rows",
            "data" => $response
         ]);
}

在你的android解析中,用JSON格式解析
response.body()

你能试试
echo JSON\u encode($res)谢谢。但是有一个错误
java.lang.IllegalStateException:应为BEGIN_数组,但在第1行第2列路径处为字符串$
我将另外上载POJO。警告:您对POJO持开放态度,应使用参数化准备语句,而不是手动生成查询。它们由或提供。永远不要相信任何形式的输入!即使您的查询仅由受信任的用户执行。谢谢,但是有个错误
java.lang.IllegalStateException:应为BEGIN_数组,但在第1行第2列路径$
处为BEGIN_对象,我是否必须更改POJO才能应用它?
if(count($response) == 0) {

    echo json_encode([
           "result" => "Empty Result",
            "data" => $response
         ]);
} else {
    echo json_encode([
           "result" => "Has rows",
            "data" => $response
         ]);
}