【问题标题】:Decode Json string in javascript在javascript中解码Json字符串
【发布时间】:2016-05-12 08:22:06
【问题描述】:

我正在尝试使用 JSON.parse() 解码一个 json 字符串,但是由于我对 JSON/Jquery 不太熟悉,因此我不知道该将代码放在哪里。

这是JS部分:

 /* ----------------------------------------------------------- */
   /*  Contact form
   /* ----------------------------------------------------------- */

   $('#contact-form').submit(function(){

      var $form = $(this),
         $error = $form.find('.error-container'),
         action  = $form.attr('action');

      $error.slideUp(750, function() {
         $error.hide();

         var $name = $form.find('.form-control-name'),
            $email = $form.find('.form-control-email'),
            $phone = $form.find('.form-control-phone'),
            $message = $form.find('.form-control-message');

         $.post(action, {
               name: $name.val(),
               email: $email.val(),
               phone: $phone.val(),
               message: $message.val()
            },
            function(data){
               $error.html(data);
               $error.slideDown('slow');

               if (data.match('success') != null) {
                  $name.val('');
                  $email.val('');
                  $phone.val('');
                  $message.val('');
               }
            }
         );

      });

      return false;

   });

我的邮件脚本的相关部分:

if($isValid == true) {
        $result["submit_message"] = _msg_send_ok;
    } else {
        $result["submit_message"] = _msg_send_error;
    }
        if($_POST["name"]=="" || $_POST["name"]==_def_name)
            $result["error_name"] = _msg_invalid_data_name;
        if($_POST["email"]=="" || $_POST["email"]==_def_email || !preg_match("#^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4})$#", $_POST["email"]))
            $result["error_email"] = _msg_invalid_data_email;
        if($_POST["message"]=="" || $_POST["message"]==_def_message)
            $result["error_message"] = _msg_invalid_data_message;   

    $result['isValid'] = $isValid;

    echo json_encode($result);

这会输出以下内容:{"submit_message":"Bedankt voor uw bericht!","isValid":true}

如何确保它只显示 Json 字符串中的 submit_message 部分?

【问题讨论】:

  • 如果您将 $.post 数据类型设置为 JSON,则根本不需要对其进行解码。 jQuery 会为你做到这一点。检查jQuery.post
  • JQuery Parsing JSON array的可能重复

标签: javascript php jquery json


【解决方案1】:

如果您想要在 $error.html(data) 中显示提交消息,那么您需要做的就是将其替换为 $error.html(data.submit_message),因为 jQuery 会自动解析来自 data 变量的 json变成一个对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多