【问题标题】:How to loop through JSON object with an array with backslashes inside in Jquery/Javascript from AJAX call如何通过 AJAX 调用的 Jquery/Javascript 中带有反斜杠的数组遍历 JSON 对象
【发布时间】:2022-01-24 18:46:12
【问题描述】:

我有一个数组,我想循环遍历 JSON 中的数组,并根据数组中的国籍显示表中的数据。问题是数组数据包含反斜杠,我无法循环遍历它。我使用 AJAX 调用从我的 PHP 文件中检索数据。

PHP:

$arr 

if (!empty($arr)) {
        echo json_encode($arr);
      // print_r($arr);
    } else{
        $errors = 'No data available.';
    }
            exit;

如果我 print_r() 我看到:Array ( [0] => stdClass Object ( [company] => John Comp [pro_countries] => ["BR","ES","FR"])

如果我使用 echo json_encode 我的 echo 看起来像,但我可以在我的 Jquery 中打印公司:[{"company":"John Comp","nationality":"[\"BR\",\"ES\",\"FR\"]"}]

但如果我使用 print_r($arr) 斜线会消失,但我似乎无法在 Jquery 中打印公司:[{"company":"John Comp","nationality":"["BR","ES","FR"]"}]

如果我使用 Print_r() 那么我在 JQuery 中的 AJAX 调用会直接进入错误响应。 jQuery:

 $.ajax({
 type: 'GET',
            url: 'testurl',
            dataType: 'json',
            processData: false,
            cache: false,
            success: function (response){
            

             response.nationality.forEach((item)=>{

            });

我也试过了:

$.ajax({
 type: 'GET',
            url: 'testurl',
            dataType: 'json',
            processData: false,
            cache: false,
            success: function (response){

var data = JSON.parse(response);

data.nationality.forEach((item)=>{

  });

循环后我想要什么:

【问题讨论】:

    标签: javascript php jquery arrays json


    【解决方案1】:

    nationality 是一个 JSON 字符串,你需要解析它以便循环遍历它。

    JSON.parse(response.nationality).forEach(item => ...)
    

    我不确定你为什么首先编码nationality。你应该把它变成一个普通的 PHP 数组,然后它会被编码为$arr 的一部分。

    【讨论】:

    • 如果我使用 print_r 而不是 json_encode 它会转到我的 Ajax 调用中的错误响应
    • 我说的不是json_encode($arr)。脚本中较早的部分正在执行$arr['nationality'] = json_encode($nationalities);
    • 我发这个帖子的时候只是一个错字而已。顶部应该没有,我修好了
    • 错误仍然存​​在,知道吗?
    • 您的编辑不是有效的 PHP。您不能将 " 放在带引号的字符串中而不转义它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    相关资源
    最近更新 更多