2015-11-27 6 views
0

Я парень .NET с довольно долгим опытом, но недавно втянутый в проект PHP, поэтому вам нужна помощь. У меня есть этот PHP-код, который подготавливает окончательный объект песни, а затем JSONify его с json_encode(), но я странно вижу дополнительную добавочную стоимость null, добавленную в конце строки JSON, и я не понимаю, почему это так.malformed JSON с PHP

Вот мой PHP код

foreach($result as $item) { 
    ++$index; 
    $hymn->id=$item['id']; 
    $hymn->refrain=$item['refrain']; 

    if ($index == 1) { $hymn->stanza1=$item['stanzaText']; } 
    if ($index == 2) { $hymn->stanza2=$item['stanzaText']; } 
    if ($index == 3) { $hymn->stanza3=$item['stanzaText']; } 
    if ($index == 4) { $hymn->stanza4=$item['stanzaText']; } 
    if ($index == 5) { $hymn->stanza5=$item['stanzaText']; } 
    if ($index == 6) { $hymn->stanza6=$item['stanzaText']; } 
    if ($index == 7) { $hymn->stanza7=$item['stanzaText']; } 
    if ($index == 8) { $hymn->stanza8=$item['stanzaText']; } 
    if ($index == 9) { $hymn->stanza9=$item['stanzaText']; } 
    if ($index == 10) { $hymn->stanza10=$item['stanzaText']; } 
} 

json_encode($hymn); 

Приведенный выше код производит JSON с дополнительным null после заканчивающихся фигурные скобки, как показано ниже.

{ 
    "id":"1", 
    "refrain" : "Jesus, Jesus, how I trust Him!\nHow I\u2019ve proved Him o\u2019er and o\u2019er;\nJesus, Jesus, precious Jesus!\nOh, for grace to trust Him more!", 
    "stanza1" : "Tis so sweet to trust in Jesus,\nJust to take Him at His Word;\nJust to rest upon His promise,\nAnd to know, \u201cThus saith the Lord!\u201d", 
    "stanza2" : "Oh, how sweet to trust in Jesus,\nJust to trust His cleansing blood;\nAnd in simple faith to plunge me\n\u2019Neath the healing, cleansing flood!", 
    "stanza3" : "Yes, \u2019tis sweet to trust in Jesus,\nJust from sin and self to cease;\nJust from Jesus simply taking\nLife and rest, and joy and peace.", 
    "stanza4" : "I\u2019m so glad I learned to trust Thee,\nPrecious Jesus, Savior, Friend;\nAnd I know that Thou art with me,\nWilt be with me to the end" 
}null 

Просьба помочь мне понять, что я здесь делаю неправильно?

+0

проверьте это http://stackoverflow.com/questions/3180690/php-json-encode-returning-null – codenut

+0

'@ codenut' Я считаю, что моя проблема отличается от той, о которой вы говорили. У меня есть все элементы JSON точно так, как ожидалось, в фигурных скобках. Но после окончания фигурных скобок он просто добавляет лишний «нуль». и просто не понимаю, откуда это. –

+0

можете ли вы разместить здесь вход? – codenut

ответ

-1

Все друзья, прошу прощения, поскольку я должен был ответить на этот вопрос раньше, но проблема не в JSON. Это с fetchAll(). Спасибо, что проанализировали и помогли мне.

1

Неправильно. json_encode НЕ создает этот нуль в конце, что-то еще, после этого кода. покажите нам остальную часть кода, и мы сможем определить, что это делает.

+0

Да, я согласен с этим ответом. Вы можете приложить свой результат от эхо-результата json в кавычках, чтобы подтвердить это, например 'echo '' '. Json_encode ($ hymn).'" '; ' – shrmn

+0

Я верю, что' null' is 'json_encode ($ hymn) 'из второй итерации цикла :) –

+0

@vp_arth возможно. но в показанном коде json_encode запускается только один раз, после завершения цикла forEach – hanshenrik

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