PHP Json echo specific item

Я хочу получить конкретное значение от json, но я не могу заставить его работать. это мой формат сохранения, это значения из полей ввода.

$.ajax({ type: "POST", url: "speichern.php", dataType: 'json', data: { "Produkt": { "Produktkategorie": Produktkategorie, "Optionen": { "MaxBreite": MaxBreite, "MaxHoehe": MaxHoehe, "MinBreite": MinBreite, "MinHoehe": MinHoehe, "ProduktStaerke": ProduktStaerke, "KantenAuswahl": KantenAuswahl, }, "Formen": { "FormRund": FormRund, "FormEllipse": FormEllipse, "FormHexagon": FormHexagon, "FormSchnittlinks": FormSchnittlinks, "FormRechtQuad": FormRechtQuad, } } }, }).done(function( msg ) { console.log( msg ); }); 

здесь он сохраняется в файле:

 $neu = json_encode($_POST); $file = file_get_contents('results.json'); $data = json_decode($file); unset($file); $data[] = $neu; file_put_contents('results.json',json_encode($data)); unset($data); с $neu = json_encode($_POST); $file = file_get_contents('results.json'); $data = json_decode($file); unset($file); $data[] = $neu; file_put_contents('results.json',json_encode($data)); unset($data); 

и теперь я хочу отбросить эти значения отдельно:

 $string = file_get_contents("results.json"); $jsonObject = json_decode($string); $jsonArray = json_decode($string, true); echo $jsonObject->Produkt->Produktkategorie . " and " . `$jsonArray['Produkt']['MaxBreite'];` 

но это только бросает мне следующие ошибки:

для объекта: Примечание: попытка получить свойство не-объекта in для массива: Примечание: Неопределенный индекс: Produkt in

это полный файл json:

 ["{\"Produkt\":{\"Produktkategorie\":\"TestArtikel\",\"Optionen\":{\"MaxBreite\":\"250\",\"MaxHoehe\":\"150\",\"MinBreite\":\"10\",\"MinHoehe\":\"5\",\"ProduktStaerke\":\"3\",\"KantenAuswahl\":\"Ecke\"},\"Formen\":{\"FormRund\":\"true\",\"FormEllipse\":\"true\",\"FormRechtQuad\":\"true\"}}}"] 

не могли бы вы мне помочь, пожалуйста?

Вы должны декодировать json два раза, потому что вы используете его в файле. Попробуй это:

 $json = file_get_contents('results.json'); $json = json_decode($json, true); $json = json_decode($json[0], true); echo $json['Produkt']['Produktkategorie']; 

Когда вы отправляете данные, возможно, вам нужно установить тип данных.
dataType: 'json'

  $.ajax({ url: 'speichern.php', type: 'post', dataType: 'json', success: function (data) { }, data: {data:jsondata} }); 

И в вашем php-файле вы можете получить данные json, как показано ниже.

 $json=json_decode(stripslashes($_POST['data']), true); 

Надеюсь, это поможет вам.

Просто замените свою последнюю строку на

 echo $jsonObject->Produkt->Produktkategorie . " and " . `$jsonArray['Produkt']['Optionen']['MaxBreite'];