我正在使用axios,响应时我正在获取json文件。据我所知,axios默认情况下会将json文件转换为对象。这是它的外观:
let newMessage{
channel:"WHATSAPP",
messages:"[{"message_type":"text","message_content":"call me back"}]",
position_id:0,
}
但是“ messages”是一个字符串,应该是一个数组。所以我json.parse消息,获取“ message_content”并分配一个值。但是价值不变。可能是什么问题?
JSON.parse(newMessage.messages)[0].message_content = "xoxo"
答案 0 :(得分:0)
原始字符串的值不会更改,因为您的代码正在更改由JSON.parse()函数生成的对象,而不是原始字符串。您必须再次对该值进行字符串化,然后使用新的字符串覆盖对象的“ messages”属性:
let newMessage = {
channel: "WHATSAPP",
messages: '[{"message_type ":"text ","message_content ":"call me back "}]',
position_id: 0,
};
var messageArr = JSON.parse(newMessage.messages);
messageArr[0].message_content = "xoxo";
newMessage.messages = JSON.stringify(messageArr);
console.log(newMessage);
P.S。您问题中的代码未编译,因此我可以自由地将其更改为我认为的目标。
答案 1 :(得分:0)
let newMessage = {
channel: "WHATSAPP",
messages: '[{"message_type ":"text ","message_content ":"call me back "}]',
position_id: 0,
};
let newmessageArr = JSON.parse(newMessage.messages);
newmessageArr[0].message_content = "xoxo";
newMessage.messages = JSON.stringify(newmessageArr);
console.log(newMessage);