2015-12-14 2 views
0

Я создаю API для своего сайта. Этот API будет использоваться другими разработчиками или Android-приложением. Ну, у меня есть два вида структур данных:Какая структура данных лучше?

One:

$iterator = 0; 
while (($end = $sth->fetch()) && $iterator < 2) 
{ 
    $api_arr["data"][] = array(
     "id"  => $end["id"], 
     "title" => $end["title"], 
     "content" => $end["content"]); 
$iterator ++; 
} 


/* Output: ------------ print_r($api_arr); ------------------- 

Array 
(
    [data] => Array 
     (
     [0] => 
      (
      [id]  => value_id_1 
      [title] => value_title_1 
      [content] => value_content_1 
     ) 

     [1] => 
      (
      [id]  => value_id_2 
      [title] => value_title_2 
      [content] => value_content_2 
     ) 
    ) 
) */ 


/* Output: ------------ echo json_encode($data); ------------------- 
      ----- and using JSONveiw extension on chrome ----- 

{ 
    - data: { 
     - 0: { 
      id: "value_id_1", 
      title: "value_title_1", 
      content: "value_content_1" 
     }, 

     - 1: { 
      id: "value_id_2", 
      title: "value_title_2", 
      content: "value_content_2" 
     }, 
    } 
} */ 

Два:

$iterator = 0; 
while (($end = $sth->fetch()) && $iterator < 2) 
{ 
    $api_arr["data"]['id'][]  = $end["id"]; 
    $api_arr["data"]['title'][] = $end["title"]; 
    $api_arr["data"]['content'][] = $end["content"]; 
$iterator ++; 
} 


/* Output: ------------ print_r($api_arr); ------------------- 

Array 
(
    [data] => 
    (
     [id] => Array 
      (
       [0] => value_id_1 
       [1] => value_id_2 
       [2] => value_id_3 
      ), 

     [title] => Array 
      (
       [0] => value_title_1 
       [1] => value_title_2 
       [2] => value_title_3 
      ), 

     [content] => Array 
      (
       [0] => value_content_1 
       [1] => value_content_2 
       [2] => value_content_3 
      ) 
    ) 
) */ 

/* Output: ------------ echo json_encode($data); ------------------- 
      ----- and using JSONveiw extension on chrome ----- 

{ 
    - data: { 
     - id:[ 
       "value_id_1", 
       "value_id_2", 
       "value_id_3 
      ], 
     - title:[ 
       "value_title_1, 
       "value_title_2, 
       "value_title_3, 
      ], 
     - content:[ 
       "value_content_1", 
       "value_content_2", 
       "value_content_3 
      ], 
    } 
} */ 

Итак, какие структуры данных лучше использовать его в стороне клиента ? (другие веб-сайты, мобильное приложение)

+0

В соответствии с моими комментариями ранее и настоящим ответом ниже 1-я структура предпочтительнее **, если ** вы создавали массив, а не объект с числовыми свойствами. Я честно не знаю, как вы могли бы получить этот вывод из предоставленного кода. – Steve

+0

Возможно, вам стоит показать полный код, в том числе, где вы создаете json – Steve

+0

. второй - ужасно, а ключи в первом бесполезны – njzk2

ответ

1

В первом вы имитируете использование массива без фактического использования массива (или, по крайней мере, похоже на данный результат), а во втором - повторяя информацию и заставляя разработчика собрать все это вместе. Лучшее решение:

{ 
    data: [ 
     { 
      id: "", 
      title: "", 
      content: "" 
     }, 
     { 
      id: "", 
      title: "", 
      content: "" 
     } 
    ] 
} 

Я думаю, что это очень похоже на ваш первый вариант, но выглядит как плагин показывает его в плохом или что-то.

Основная причина, по которой разработчики Android предпочитают это потому, что прямой перевод между объектами и json может быть выполнен с некоторыми библиотеками.

+0

Ну, спасибо, но как я могу сгенерировать этот выход? Можете ли вы добавить код к вашему ответу? – stack

+0

Извините, у меня нет опыта работы с php, поэтому, вероятно, мой код будет неправильным, но вы можете создать небольшой сервис и сделать некоторые тесты доступными к нему с помощью браузера Chrome или почтальона, если вам нужно выполнить операцию POST – droidpl

Смежные вопросы