dongzai3917 2016-09-05 11:23
浏览 56
已采纳

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

I am a beginner coder and I am learning Android from Ravi's tutorials. Currently, I am trying to combine two tutorials - login/register and listview (I put the two links here so I don't have to post a bunch of code).

I am making an app where user registers and he is able to add a movie. The added movie is saved on the server. I made an activity similar to the register activity and it enables user to add a movie with the following info:

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"); 

And my php class for adding a movie:

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);
}
?>

Now I want to return the added movie, but I also want to return the name of the user who added the movie instead of the user_id. What is the best way to do this if I only have the user_id from the stored_user table?

  • 写回答

1条回答 默认 最新

  • douyou1960 2016-09-05 11:34
    关注

    You need to run another query on stored_user table for getting user's info related to user_id and assign that object to the user object in your response. It will automatically get encoded into json as follows

    {
      "id": "2",
      "title": "xyz",
      "genre": "abc",
      "year": "2006",
      "user": {
        "id": "4",
        "name": "User's name",
        "email": "User's email"
      }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学中在线排序的时间在线排序的在线LPT算法
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧