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 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误