【问题标题】:Converting data from JSON to JavaScript array将数据从 JSON 转换为 JavaScript 数组
【发布时间】:2025-12-12 01:45:01
【问题描述】:

我在转换从 "naloga3.php" 发送的数据时遇到问题。 如何从 JSON 转换为数组。

JAVASCRIPT

<script>
function shrani(){

    var formData = {naslov: document.getElementById("naslov").value,
                    besedilo: document.getElementById("besedilo").value,
                    datum:0
                    };


    $.ajax({
        url : "naloga3.php",
        type: "POST",
        data : formData,
        success: function(data, textStatus, jqXHR)
        {
            $('#zapisi').append('<a>'+data+'</a></br>');
            var x = eval("(" + data + ")");
            for(var i=0;i<x.length;i++)
            {
                $('#zapisi').append('<a>'+x.length+'</a></br>');
            }

        },
        error: function (jqXHR, textStatus, errorThrown)
        {
            $('#zapisi').append('<a>Napaka</a></br>');
        }

    });

}


</script>

naloga3.php

<?php

$file="podatki.txt";
$podatki=file_get_contents($file);

$izpolje=array();
$izpolje= json_decode($podatki,true);
$polje=$_POST;
$polje['datum']=date('H:i:s');
if($izpolje!=null)
{
    array_unshift($izpolje,$polje);
    file_put_contents($file,json_encode($izpolje));
}else
{
    $tr=array();
    array_unshift($tr,$polje);
    file_put_contents($file,json_encode($tr));
}


$podatki=file_get_contents($file);
echo json_encode($izpolje);

?>

我的输出

[{"naslov":"d","besedilo":"d","datum":"16:07:05"},{"naslov":"dddd","besedilo":"d" ,"datum":"15:51:41"},{"naslov":"d","besedilo":"d","datum":"15:51:33"},{"naslov":" d","besedilo":"d","datum":"15:51:30"},{"naslov":"d","besedilo":"d","datum":"15:51: 26"}]

【问题讨论】:

    标签: javascript php json


    【解决方案1】:

    您需要做的是将您的 ajax 响应的 dataType 设置为 json,然后您需要迭代返回的对象并附加到 $.each() 循环中。

    $.ajax({
        url : "naloga3.php",
        type: "POST",
        data : formData,
        dataType: "json", // jQuery will now parse the returned data and return an object
        success: function(data, textStatus, jqXHR)
        {
    
            $.each(data, function(i,obj){
                //now you can acess navlos, besedilo and datum
                $('#zapisi').append(obj.naslov+'</br>');
                $('#zapisi').append(obj.besedilo+'</br>');
                $('#zapisi').append(obj.datum+'</br>');
            });
        },
        error: function (jqXHR, textStatus, errorThrown)
        {
            $('#zapisi').append('<a>Napaka</a></br>');
        }
    
    });
    

    【讨论】: