我正在创建一个项目,在该项目中,我有一个Django服务器将JSON数据发送到运行Vue.js的模板。 JSON数据正在发送带有尾随空格的值,这会引起问题。如果可能的话,我想在HTML页面上将其删除。
我尝试在JSON数据上使用Javascript.trim()似乎没有任何效果。我也无法剥离整个JSON文件的空白,因为某些值需要在其中包含空白。
我正在尝试从{“ keyword”:“ value”}集中删除空格。有时,“值”部分中包含“值”或“值”。
This won't work
<option value="And">And</option>
But this will
<option value="And ">And</option>
JSON对象包含
"keyword": "And "
代替
"keyword": "And"
我希望代码可以工作,而不管数据中值周围的空白如何。
编辑: 我无法使用Javascript的trim()函数,因为JSON数据中有数十次出现此问题。遍历数据并修剪每个单独的字符串将大大增加页面的加载时间。
Edit2:
<b-form-select for="action-text" v-model="step.keyword" class="mx-3">
<option value="Given ">Given</option>
<option value="When ">When</option>
<option value="Then ">Then</option>
<option value="And ">And</option>
<option value="But ">But</option>
</b-form-select>
在哪里可以根据需要修剪?
答案 0 :(得分:0)
您可以使用以下功能修剪键和值:
function trimObj(obj) {
if (!Array.isArray(obj) && typeof obj != 'object') return obj;
return Object.keys(obj).reduce(function(acc, key) {
acc[key.trim()] = typeof obj[key] == 'string'? obj[key].trim() : trimObj(obj[key]);
return acc;
}, Array.isArray(obj)? []:{});
}
var a = '{ "name":"John ", "age":30, "city":" New York"}';
console.log(trimObj(JSON.parse(a)));
或者,您也可以将其字符串化,替换并重新解析
JSON.parse(JSON.stringify(badJson).replace(/"\s+|\s+"/g,'"'))