在 ruby 和 js 中从 json 中提取字符串
extracting string from json in ruby and js
目前,我们在 ruby 中使用 Elixir API 构建我们的项目。并且因为我们使用 Ecto 验证来验证我们的参数。有一个遍历函数,我们可以通过它得到错误,但它是
"message": {
"to_date": [
"can't be blank"
],
"title": [
"can't be blank"
],
"requested_by": [
"can't be blank"
],
"from_date": [
"can't be blank"
],
"exid": [
"can't be blank"
]
}
}
有没有办法以良好的形式提取这些消息?例如它们应该表示为 exid can't be black
不确定您要查找的内容。也许是这样的?
function sanitizeErrors(errs) {
var msg = errs.message;
var result = {};
for (var key in msg) {
result[key] = key.replace('_', ' ') + ' ' + msg[key][0];
}
return result;
}
您可以在这里进行测试:http://jsbin.com/saviyi/edit?js,console
它生成一个如下所示的对象:
{
exid: "exid can't be blank",
from_date: "from date can't be blank",
requested_by: "requested by can't be blank",
title: "title can't be blank",
to_date: "to date can't be blank"
}
使用内置 JSON 解析器的浏览器,如果它有 javascript 支持,您可以 JSON.parse
将您的消息作为参数,然后执行以下四项操作之一我的头顶。
- 在同一行访问它。
- 将其放入另一个 javascript 对象中。
- return 给你的来电者。
- 迭代它。
然后您可以使用任何迭代器访问它,或者使用像
这样的点符号
b=JSON.parse('{"a":"b","7":0,"1":0,"0":1,"5":[1,5,8,6],"g":"Hello World"}').a
#The string "b"
b[7] # 0
b[5] # an array with 1 5 8 and 6
alert(b.g)
在您的浏览器控制台中尝试!!
方括号意味着您将每条消息作为数组中的第一个元素,但这非常容易处理!
目前,我们在 ruby 中使用 Elixir API 构建我们的项目。并且因为我们使用 Ecto 验证来验证我们的参数。有一个遍历函数,我们可以通过它得到错误,但它是
"message": {
"to_date": [
"can't be blank"
],
"title": [
"can't be blank"
],
"requested_by": [
"can't be blank"
],
"from_date": [
"can't be blank"
],
"exid": [
"can't be blank"
]
}
}
有没有办法以良好的形式提取这些消息?例如它们应该表示为 exid can't be black
不确定您要查找的内容。也许是这样的?
function sanitizeErrors(errs) {
var msg = errs.message;
var result = {};
for (var key in msg) {
result[key] = key.replace('_', ' ') + ' ' + msg[key][0];
}
return result;
}
您可以在这里进行测试:http://jsbin.com/saviyi/edit?js,console
它生成一个如下所示的对象:
{
exid: "exid can't be blank",
from_date: "from date can't be blank",
requested_by: "requested by can't be blank",
title: "title can't be blank",
to_date: "to date can't be blank"
}
使用内置 JSON 解析器的浏览器,如果它有 javascript 支持,您可以 JSON.parse
将您的消息作为参数,然后执行以下四项操作之一我的头顶。
- 在同一行访问它。
- 将其放入另一个 javascript 对象中。
- return 给你的来电者。
- 迭代它。
然后您可以使用任何迭代器访问它,或者使用像
这样的点符号b=JSON.parse('{"a":"b","7":0,"1":0,"0":1,"5":[1,5,8,6],"g":"Hello World"}').a
#The string "b"
b[7] # 0
b[5] # an array with 1 5 8 and 6
alert(b.g)
在您的浏览器控制台中尝试!!
方括号意味着您将每条消息作为数组中的第一个元素,但这非常容易处理!