在我的网上商店中,我想按项目将客户订单添加到订单中。 首先,我单击并从数据库添加一个项目。 然后我将选择的项目传递给js。
$('#addItem').click(function () {
let itemData = $('#item').val();
console.log(itemData);
});
这是输出:
{"id":1,"business_id":401,"name":"\u067e\u06cc\u0631\u0627\u0647\u0646","discount_model":1,"special_date":0,"hot_offer":0,"percent":30,"buy_quantity":null,"prize_quantity":null,"prize_name":null,"floor_buy":null,"discount_percent":null,"is_active":1,"created_at":"2019-07-02 06:43:23","updated_at":"2019-07-02 06:44:51"}
现在我需要itemData.name或itemData ['name'],但是它说:undefined!?
如何获取道具?
答案 0 :(得分:3)
根本无法从字符串调用属性,必须将String转换为JSON对象。下面的parse
方法可以做到这一点。
itemData = JSON.parse(itemData)
请参考简单的示例:
var myJsonStr = '{"id":1,"business_id":401,"name":"\u067e\u06cc\u0631\u0627\u0647\u0646","discount_model":1,"special_date":0,"hot_offer":0,"percent":30,"buy_quantity":null,"prize_quantity":null,"prize_name":null,"floor_buy":null,"discount_percent":null,"is_active":1,"created_at":"2019-07-02 06:43:23","updated_at":"2019-07-02 06:44:51"}';
var myJson = JSON.parse(myJsonStr);
console.log(myJson.name);
答案 1 :(得分:1)
请尝试这个
$('#addItem').click(function () {
let itemData = $('#item').val();
try {
itemData = JSON.parse(itemData);
} catch(e) {
throw e;
}
console.log(itemData.name);
});
答案 2 :(得分:-3)
tldr;以一种非常酷的方式安全地访问JavaScript中的嵌套对象。
在大多数情况下,使用JavaScript时,我们将处理嵌套对象,并且经常需要安全地访问最内层的嵌套值。
让我们以这个嵌套对象为例。
const user = { id:101, 电子邮件:“ jack@dev.com”, 个人信息: { 名称:“杰克”, 地址: { 第1行:“ westwish st”, 第2行:“ washmasher”, 城市:“ wallas”, 状态:“ WX” } } }
要访问我们的用户名,我们将写
const name = user.personalInfo.name; const userCity = user.personalInfo.address.city;