2013-10-07 2 views
1

Я мой PHP-файл, мне нужно, чтобы сделать свой собственный массив JSonДобавить "и создать свой собственный массив JSON в PHP

 for($i=1;$i<$arraySize+1;$i++){ 
      $idJson[$i]=$i.":".$birdIDArray[$i-1]; 
     } 

     for($i=$arraySize+1 ;$i<$arraySize*2+1; $i++){ 
      $idJson[$i]=$i.":".$rankArray[$i-($arraySize+1)]; 
     } 

Когда я использую

печати (json_encode ($ idJson));.

ВЫХОД: ["0: 3", "1:15", "2: 3", "3:14", "4: 1", "5: 2", "6: 2"]

Но мне нужен выход, как этот ["0": "3", "1": "15", "2": "3", "3": "14", "4": "1" , "5": 2 "," 6 ":" 2 "]

Когда я собираюсь добавить "отметку

 for($i=1;$i<$arraySize+1;$i++){ 
      $idJson[$i]=$i.'"'.":".'"'.$birdIDArray[$i-1]; 
     } 

     for($i=$arraySize+1 ;$i<$arraySize*2+1; $i++){ 
      $idJson[$i]=$i.'"'.":".'"'.$rankArray[$i-($arraySize+1)]; 
     } 

Он печатает как это [" 0: 3" , "1 \": \ "15", "2 \": \ "3",» 3 \ ": \" 14 "," 4 \ ": \" 1 "," 5 \ ": \" 2 "," 6 \ ": \" 2 "]

Как я могу избежать печати этого \ знак?

+1

Почему бы не просто json_encode ($ your_array); ..? почему вы хотите создать пользовательский ...? –

+0

Почему бы вам просто не создать обычный php-массив и использовать 'json_encode'? – Konsole

+1

'[" 0 ":" 3 ", ...' не является допустимым массивом JSON! – deceze

ответ

1

Я предполагаю, что вы хотите JSON объект так:

{"0":"3", ... } 

Проблема здесь состоит в том, что Javascript/JSON различает пар ключ-значение, которые являются объектами, и численно индексированные списки, которые являются массивами, в то время как PHP использует массивы для обоих этих вещей. С json_encode это зависит от того, является ли массив PHP непрерывно численно индексированным массивом, и в этом случае вы получаете массив JSON или что-то еще, и в этом случае вы получаете объект JSON.

Что вы хотите, это заставить объект JSON даже для непрерывно численно проиндексированного массива. Первый вопрос здесь: почему ?! Но если вы действительно уверены, что хотите, что (опять же, почему ?!), есть JSON_FORCE_OBJECT флаг в PHP 5.3+:

echo json_encode(array("3", "15", "3"), JSON_FORCE_OBJECT); 
// {"0":"3","1":"15","2":"3"} 

Но я еще раз говорю, что это довольно бессмысленно. Если вы используете обычный массив, такой как ["3","15","3"], ключи к этим элементам уже неявно 0, 1 и 2. Нет необходимости применять их в качестве ключей объектов.

+0

JSONArray jarray = новый JSONArray (результат); \t \t \t \t \t \t \t \t для (INT I = 0; г Shashika

+0

Я понятия не имею, что вы пытаетесь мне рассказать. – deceze

+0

Как получить значения в json-массиве, вызвав ключ (положение массива)? – Shashika

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