我正在处理一个名为(http://michaeleisenbraun.com/columns/)的插件,它将json转换为表格。
我使用以下代码:
<script>
$.ajax({
url:'/large-data.json',
dataType: 'json',
success: function(json) {
example2 = $('#example2').columns({
data:json,
});
}
});
</script>
当json在括号中时,它很有效,如下所示:
[
{
"id": 9998,
"isActive": false,
"balance": "$5",
"age": 38,
"eyeColor": "blue",
"name": "Lola Townsend",
"gender": "female",
"company": "...",
"email": "asdf@asdf.com,
"phone": "..."
}
]
但是,如果json不在括号中,则不起作用,如下所示:
{
"id": 9998,
"isActive": false,
"balance": "$5",
"age": 38,
"eyeColor": "blue",
"name": "Lola Townsend",
"gender": "female",
"company": "...",
"email": "asdf@asdf.com,
"phone": "..."
}
json响应来自其他站点,因此我无法控制它是否具有括号。
有没有办法确保每次返回的json都有括号,如果没有,会添加括号?
我尝试了JSON.parse(),但它没有用。
答案 0 :(得分:0)
第一个意味着它是一个数组对象,第二个意味着它只是一个对象。我现在并没有真正得到你想要做的事情但你可以简单地将对象放入数组中,如果它不是全部的话。类似的东西:
if(!Arrays.isArray(yourObject)) {
var temp = [] ;
temp.push(yourObject);
yourObject= temp;
}
我没有测试过,因为我不知道你想做什么,但这是主要的想法。
希望它有所帮助!
答案 1 :(得分:0)
您可以使用正则表达式检查^\[|\n*\]$
代码是否正确。如果字符串的第一个字符是[
而最后一个字符是]
,则应该有2个匹配项。
您可以在此处测试:https://regex101.com/r/Cukwog/1