Я хочу получить конкретное значение от 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'];