Java 在Android中组合来自服务器的JSON表

Java 在Android中组合来自服务器的JSON表,java,php,android,json,server,Java,Php,Android,Json,Server,我是一名初级程序员,我正在从Ravi's学习Android。目前,我正在尝试结合两个教程(我把这两个链接放在这里,这样我就不必发布一堆代码) 我正在制作一个用户注册的应用程序,他可以添加一部电影。添加的电影保存在服务器上。我制作了一个类似于注册活动的活动,它允许用户添加具有以下信息的电影: JSONObject movie= jObj.getJSONObject("movie"); String id = movie.getString("id"); String userId = movie

我是一名初级程序员,我正在从Ravi's学习Android。目前,我正在尝试结合两个教程(我把这两个链接放在这里,这样我就不必发布一堆代码)

我正在制作一个用户注册的应用程序,他可以添加一部电影。添加的电影保存在服务器上。我制作了一个类似于注册活动的活动,它允许用户添加具有以下信息的电影:

JSONObject movie= jObj.getJSONObject("movie");
String id = movie.getString("id"); 
String userId = movie.getString("user_id");  // this is the current user's id
String title = movie.getString("title");
String genre = movie.getString("genre");
String year = movie.getString("year"); 
我的php类用于添加电影:

require_once 'include/DB_Functions.php';
$db = new DB_Functions();

// json response array
$response = array("error" => FALSE);

if (isset($_POST['user_id']) && isset($_POST['title']) && isset($_POST['genre']) && isset($_POST['year'])) {

// receiving the post params
$user_id = $_POST['user_id'];
$title = $_POST['title'];
$genre = $_POST['genre'];
$year = $_POST['year'];

// create a new movie
$movie = $db->storeMovie($user_id, $title, $genre, $year);
if ($movie) {
    // movie stored successfully
    $response["error"] = FALSE;
    $response["movie"]["id"] = $movie["id"];
    $response["movie"]["user_id"] = $movie["user_id"];
    $response["movie"]["title"] = $movie["title"];
    $response["movie"]["genre"] = $movie["genre"];
    $response["movie"]["year"] = $movie["year"];
    $response["movie"]["created_datetime"] = $movie["created_datetime"];
    echo json_encode($response);
} else {
    // movie failed to store
    $response["error"] = TRUE;
    $response["error_msg"] = "Unknown error occurred in movie creation!";
     echo json_encode($response);
}

} else {
    $response["error"] = TRUE;
    $response["error_msg"] = "Some of the required parameters are missing!";
    echo json_encode($response);
}
?>

现在我想返回添加的电影,但是我还想返回添加电影的用户的姓名,而不是用户id。如果我只从存储的用户表中获得用户id,那么最好的方法是什么?

您需要在
存储的用户
表上运行另一个查询,以获取与
用户id
相关的用户信息,并将该对象分配给响应中的
用户
对象。它将自动编码到
json
,如下所示

{
  "id": "2",
  "title": "xyz",
  "genre": "abc",
  "year": "2006",
  "user": {
    "id": "4",
    "name": "User's name",
    "email": "User's email"
  }
}

要从教程中获取信息,该查询应该类似于什么?@Kemo您可以编写如下函数:
public function getUserById($id){$stmt=$this->conn->prepare(“SELECT*from users WHERE id=?”);$stmt->bind_param(“s”,$email);if($stmt->execute()){$user=$stmt->get_result()->fetch_assoc();$stmt->close();return$user;}else{return NULL;}
还有一个问题-此代码应使此
//电影json url私有静态最终字符串url=”http://api.androidhive.info/json/movies.json";     私人对话;private List movieList=new ArrayList();私有列表视图列表视图;专用自定义列表适配器在我的电影活动中工作?无需添加
http://api.androidhive.info/json/stored_user.json
?@Kemo用于获取需要获取的电影列表
http://api.androidhive.info/json/movies.json
要获取用户信息,您需要获取
http://api.androidhive.info/json/stored_user.json
url