[英]JSON parse returns empty string?
我不確定這是 VueJS 還是 JS 本身的問題。
我的數據庫中有字符串(使用 JSON.stringify() 轉換的 JS 對象),如下所示:
{"type":5,"values":{"7":"/data/images/structured-content/64-7-scico.jpg","8":"<b>wefwe</b>","9":"Nějaký text","10":"/data/images/structured-content/64-10-scico.jpg"}}
我想要做的是從數據庫中選擇它(通過 Axios),將其轉換回 JS 對象並將其設置為 VueJS 數據:
.then(response => {
if (response.data.response === "ok" && response.status == 200) {
// get data
let data = response.data.data.data[0];
// pass name to state
this.objectName = data.name;
// get json in string format
let result = data.content;
// first log
console.log(result);
// convert string to json
let content = JSON.parse( result );
// second log
console.log( content.values );
// update states
this.IDType = content.type;
this.values = content.values;
}
})
Axios 、 data.name和content.type工作正常,但是第二個日志( content.values )似乎正在返回帶有空字符串的觀察者,我無法將其傳遞給 Vue 數據並使用它,正如您在屏幕上看到的下面,無論我做什么,這個對象中的值都是空的。 這里到底有什么問題? 謝謝!
從調試器:
要成為響應式 Vue 需要在分配對象之前知道它們的鍵是什么。 因此,如果它們是已知的,請預先分配它們:
data : () => ({
values : {
7 : "",
8 : "",
9 : "",
10 : ""
}
}),
然后使用對象分配來設置它們:
Object.assign(this.values, content.values)
如果鍵是未知/動態值,您可以使用$set
方法將它們設置為響應式:
Object.keys(content.values).forEach(
function(key){
this.$set(this.value, key, content.values[key])
}
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.