在Laravel中处理JSON响应的最佳方法

时间:2018-11-30 20:24:34

标签: json ajax laravel laravel-5.5

我使用Laravel 5.5和PHP 7,并且正在创建这样的表单。

<form id="form" name="xxx" action="post">
  <input type="text" name="body_color[1][en]">
  <button type="submit" name="submit">Submit</button>
</form>

我通过Ajax发布数据,并且在发生错误时收到Laravel的以下响应。

  

错误:body_color.1.en:[“必须输入body color.1.en字段。”]   成功:错误

如果Laravel不使用圆点替换“ [”和“]”,我可以使用jQuery在浏览器上有效显示错误消息。

$('#form *[name=body_color[1][en]]').after('input error!');

如何在网络浏览器中显示简单的错误消息?

2 个答案:

答案 0 :(得分:1)

根据您的jQuery要求,这种情况下可以使用简单的正则表达式替换:

var str = "body_color.1.en"
str.replace(/\.(.+)\./, "[$1][") + "]" // returns body_color[1][en]

或者您也可以将点上的字符串分割并重建:

str.split('.')  // returns ['body_color', '1', 'en'];

有许多现有的Javascript类可以处理错误响应,例如:https://github.com/spatie/form-backend-validation

答案 1 :(得分:0)

通过JSON.parse(response)运行响应,您应该能够使用标准的json点语法逐步浏览数据。

var r = JSON.parse(response):

console.log(r);