2017-11-15 4 views
0

Ich habe ein JSON-Objekt wie folgt:Laravel ist kein JSON-Objekt in Blade-Parsing wie erwartet - Fehler nicht definierte Eigenschaft: stdClass

{ 
    "statusCode": 0, 
    "statusMessage": "OK", 
    "content": { 
    "templateId": "5a00775807105e735085c65d", 
    "authorId": "[email protected]", 
    "title": "Primo Template", 
    "description": "Descrizione del Primo Template", 
    "status": 0, 
    "saveDate": 1509979998738, 
    "publishDate": null, 
    "keywords": [ 
     "keyDue", 
     "keySecondo" 
    ], 
    "icon": null, 
    "questions": [ 
     { 
     "questionId": 1, 
     "questionText": "Domanda 01?", 
     "responses": [ 
      { 
      "keywords": [ 
       "Sì", 
       "Yes", 
       "Oui" 
      ], 
      "nextQuestionId": 11 
      }, 
      { 
      "keywords": [ 
       "No", 
       "Not", 
       "Non" 
      ], 
      "nextQuestionId": 12 
      } 
     ] 
     }, 
     { 
     "questionId": 11, 
     "questionText": "Domanda 11?", 
     "responses": [ 
      { 
      "keywords": [ 

ich es auf einen Blick übergeben, nachdem dies zu tun:

$objResp=json_decode($response); 

Dann auf der Ansicht, ich es einfach zugreifen wie so:

@foreach($template->content->questions as $question) 
    ... 
    {{$question->questionText}} 
    ... 
    @foreach($question->responses as $res) 
     .... 
    @endforeach 

@endforeach 

„Antworten“ ist eine andere Struktur, aber auf dem gleichen Niveau wie "questionText", damit ich einfach darauf zugreifen kann.

Also das Problem ist in der zweiten/internen Schleife, es stürzt ohne Hoffnung ..., aber wenn ich eine dd() von $question->responses mache, kann ich den richtigen Inhalt eines Array size2 sehen.

Laravel gibt mir wieder diesen Fehler mit der Schleife:

nicht definierte Eigenschaft: stdClass :: Antworten $

Was diesen Fehler verursacht?

+0

Haben Sie versucht, um zu sehen, was $ Frage auf jedem Lauf enthält? Es wäre auch hilfreich, den gesamten JSON irgendwo anzulegen, damit wir ihn sehen können. – Ynhockey

+0

@Ynhockey der JSON ist so lang, aber enthält die gleiche Struktur ohne Fehler, vertraue mir; $ question enthält was ich erwarte! wenn ich eine dd() oder eine var_Dump() mache, ist der Inhalt für mich korrekt! wie folgt: {# 239 ▼ + "questionId": 1 + "questionText": "Domanda 01?" + "responses": array: 2 [▼ 0 => {# 240 ▼ + "Schlüsselwörter": array: 3 [▶] + "nextQuestionId": 11 } 1 => {# 243 ▼ + "keywords": array: 3 [▶] + "nextQuestionId": 12 } ] } – JahStation

Antwort

0

Sie können versuchen, für jede Antwort einen Schlüssel festzulegen.

Like:

"responses": [ 
     "1": { 
     "keywords": [ 
      "Sì", 
      "Yes", 
      "Oui" 
     ], 
     "nextQuestionId": 11 
     }, 
     "2": { 
     "keywords": [ 
      "No", 
      "Not", 
      "Non" 
     ], 
     "nextQuestionId": 12 
     } 
    ] 

Es gibt mehr Möglichkeiten, json reresent und ich denke, die json Syntax von PHP nicht unterstützt wird.

+0

Ich muss es konsumieren ... ich bin nicht wer es geschafft hat :(also habe ich keine Kontrolle darüber – JahStation

+0

Dies ist das von php unterstützte JSON-Format: http://www.faqs.org/rfcs/rfc7159.html Es wäre also gut, wenn Sie Ihrer Quelle ein JSON-Format angeben könnten. –

0

Pass wahr als das zweite Argument zu json_decode.

$objResp=json_decode($response, true);

Verwandte Themen