【问题标题】:Dynamically add some values inside a javascript object or a json file with jquery使用 jquery 在 javascript 对象或 json 文件中动态添加一些值
【发布时间】:2016-12-27 13:49:51
【问题描述】:

我想在我的 json 文件中添加一些文本。我的文件是这样的:

{
        "a": "Store Name",
        "b": "Address",
        "c": "Town/City",
        "d": "Prov",
        "e": "Postal Code",
        "f": "Phone",
        "g": "Website",
        
    },
    {
        "a": "Nutter's Bulk Foods #50",
        "b": "102-400 Main Street",
        "c": " N.E.",
        "d": "Airdrie",
        "e": "AB",
        "f": "T4B 2N1",
        "g": "(403) 948-6354",
        
    },
    {
        "a": "King Drug Hinton 1982 Ltd.",
        "b": "145 Athabasca Avenue",
        "c": "Hinton",
        "d": "AB",
        "e": "T7V 2A4",
        "f": "(780) 865-2645",
        "g": "http://www.kingdrug.ca/",
        
    },

等等。 我想在单个值内添加一些文本(在 html 标签内),以便将我的文件动态更改为:

{
        "a": "King Drug Hinton 1982 Ltd.",
        "b": "145 Athabasca Avenue",
        "c": "Hinton",
        "d": "AB",
        "e": "T7V 2A4",
        "f": "<a href='tel:+1780..'>(780) 865-2645</a>",
        "g": "<a href='http://www.kingdrug.ca/'>http://www.kingdrug.ca/</a>",
        
}

例如:假设我要定位属性名称“a”,检索值“780...”并添加一个与文件中的值相等的 html 锚标记。对我来说最大的问题是使用 json 文件,我曾经使用 javascript 对象进行工作和迭代。提前感谢您提供任何有用的建议。

更新:

我可以轻松地将我的 json 文件转换为 javascript 对象,而不是使用 ajax 调用,以避免问题并加快处理速度,所以,假设我有一个这样的文件:

{
    "html": '65 Simcoe St',
    "title": 'The Farm To Table Market And Kitchen',
    "lat": '44.501345',
    "phone": '(705) 444-6200',
    "website": 'ccfcoop.ca',
    "lng": '-80.215064',
    "postalcode": 'L9Y 1H5',
    "city": 'Collingwood, ON, Canada'
},

我正在寻找这样的文件:

{
        "html": '65 Simcoe St',
        "title": 'The Farm To Table Market And Kitchen',
        "lat": '44.501345',
        "phone": '<a href="tel:+17054446200">(705) 444-6200</a>',
        "website": '<a href="http://ccfcoop.ca/">ccfcoop.ca/</a>',
        "lng": '-80.215064',
        "postalcode": 'L9Y 1H5',
        "city": 'Collingwood, ON, Canada'
},

【问题讨论】:

  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及重现它所需的最短代码在问题本身。没有明确的问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example
  • 我不确定我是否理解。如果你想 write 到一个 json 文件,你不能用 javascript 来做。
  • 我们在这里讨论的是 JSON 字符串,还是 JavaScript 对象数组?
  • 我不想写一个 json 文件,我想修改一个 json 文件,例如使用 ajax。我可以轻松地将我的 json 文件更改为 javascript 对象,这可能更容易,但目前,出于这个原因,我添加了一个简短的介绍,我从 html google sheet 文件中检索了一个 json 文件。但我的观点和实现是我需要一种方法来轻松操作 json 文件值?

标签: javascript jquery json iteration


【解决方案1】:

这是一个如何操作 JavaScript 对象的示例:

var data = [{
    "html": '65 Simcoe St',
    "title": 'The Farm To Table Market And Kitchen',
    "lat": '44.501345',
    "phone": '(705) 444-6200',
    "website": 'ccfcoop.ca/',
    "lng": '-80.215064',
    "postalcode": 'L9Y 1H5',
    "city": 'Collingwood, ON, Canada'
}, // more objects could follow here
];

data.forEach( obj => {
    obj.phone = '<a href="tel:' 
        + (obj.phone.indexOf('+') == -1 ? '+1' : '')
        + obj.phone.replace(/\D/g, '') + '">' + obj.phone + '</a>';
    obj.website = '<a href="' 
        + (obj.website.indexOf(':') == -1 ? 'http://' : '') 
        + obj.website + '">' + obj.website + '</a>';
});

console.log(JSON.stringify(data, null, 2));

请注意,在 JSON 字符串格式中,双引号会被转义,因为它们出现在双引号字符串中。

这只是一个示例,说明如何将超链接 HTML 添加到电话号码和 URL。您可能希望通过其他方式转换此类元素,具体取决于它们最初的格式。但这应该会给你一个想法。

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 2012-04-15
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多