Jquery 如何用单引号替换json数据

Jquery 如何用单引号替换json数据,jquery,json,Jquery,Json,原始JSON数据 [ {"year":2008,"value":20,"sales":10}, {"year":2010,"value":10,"sales":20}, {"year":2015,"value":5,"sales":30}, {"year":2020,"value":25,"sales":40}, {"year":2025,"value":30,"sales":50}, {"year":2030,"value":40,"sales":60}, {"ye

原始JSON数据

[
  {"year":2008,"value":20,"sales":10},
  {"year":2010,"value":10,"sales":20},
  {"year":2015,"value":5,"sales":30},
  {"year":2020,"value":25,"sales":40},
  {"year":2025,"value":30,"sales":50},
  {"year":2030,"value":40,"sales":60},
  {"year":2035,"value":60,"sales":70}
]
我需要这样做

[
  {"year":"2008","value":20,"sales":10},
  {"year":"2010","value":10,"sales":20},
  {"year":"2015","value":5,"sales":30},
  {"year":"2020","value":25,"sales":40},
  {"year":"2025","value":30,"sales":50},
  {"year":"2030","value":40,"sales":60},
  {"year":"2035","value":60,"sales":70}
]
您可以看到年份值的差异被单引号替换, 更改后,我只需要JSON格式的数据 这是我的需要,为此我需要将我的年份转换为单引号,以便折线图工作

function Onsuccess(response) {               
            var str1 = JSON.parse(response.d);
            alert(str1);
            Morris.Area({
            element: 'morris-area-chart',
            data: str1,
            xkey: 'year',// here im not getting value of year in line
            ykeys: ['sales'],
            labels: ['value'],
            pointSize: 3,
            fillOpacity: 0,
            pointStrokeColors:['#55ce63', '#009efb', '#2f3d4a'],
            behaveLikeLine: true,
            gridLineColor: '#e0e0e0',
            lineWidth: 3,
            hideHover: 'auto',
            lineColors: ['#55ce63', '#009efb', '#2f3d4a'],
            resize: true
            });

这是不可能的,但如果您必须将其转换为这种格式,您可以自己构造它

风险值数据=[ {年份:2008,价值:20,销售额:10}, {年份:2010,价值:10,销售额:20}, {年份:2015,价值:5,销售额:30}, {年份:2020年,价值:25,销售额:40}, {年份:2025年,价值:30,销售额:50}, {年份:2030年,价值:40,销售额:60}, {年份:2035,价值:60,销售额:70} ]; var NewData=[\n; 对于变量i=0;iconsole.logNewData 假设您只想将年份属性表示为字符串,则可以通过将原始数组映射到具有相同数据结构的数组来强制转换它们,只需将数字年份替换为year.toString

const originalJsonData='[{年份:2008,价值:20,销售额:10},{年份:2010,价值:10,销售额:20},{年份:2015,价值:5,销售额:30},{年份:2020,价值:25,销售额:40},{年份:2025,价值:30,销售额:50},{年份:2030,价值:40,销售额:60},{年份:2035,价值:60,销售额:70}] const original=JSON.parseoriginalJsonData const changed=original.mapo=>{…o,year:o.year.toString} const alteredJsonData=JSON.stringifyalterned
console.infoalteredJsonData可能有点过于简单,但它确实做到了:

var json = {
  "data":[
    {"year":2008,"value":20,"sales":10},
    {"year":2010,"value":10,"sales":20},
    {"year":2015,"value":5,"sales":30},
    {"year":2020,"value":25,"sales":40},
    {"year":2025,"value":30,"sales":50},
    {"year":2030,"value":40,"sales":60},
    {"year":2035,"value":60,"sales":70}
  ]
}
for(var i in json.data) {
    json.data[i].year = json.data[i].year.toString();
}

我很抱歉,伙计们,这是来自数据库的数据类型提交,谢谢大家的关注,
来自Int中数据库的JSON数据和我更改为varchar

后者不是有效的JSON。字符串只能用双引号引起来。还有,为什么?你不能这么做,但你可以用双引号,这很容易。另外,请提供您当前的方法:修改后,我只需要JSON格式的数据,这样您就不需要单引号了?请对您的问题提供更好的解释,并提供更多的上下文。这甚至是一个JSON问题,还是您只是想在运行时将数字转换为字符串?@StephanT。我会告诉你需要什么,这样你就能帮助我了out@Kirandasvakkil很好,只要提供我们需要的信息,就可以创建一个包含双引号的字符串。这就是问题所在,对于普通的Json,你不能使用单引号,这就是为什么我在上面问他是否出于特定原因需要单引号不。在JSON中,双引号标记字符串值的开始和结束。但它们不是字符串值本身的一部分。您正在创建一个字符串,其中包含双引号作为值的一部分。也就是说,用JSON表示,您正在创建与\2008\相当的内容,而不是2008。做一个console.logJSON.stringifyjson来了解我的意思。谢谢你的建议!有时,为了实现项目所需的功能,我们必须打破规则。在那一年,价值和销售额都是数字,这个脚本不会引起任何问题。它将工作,并生成所需的json。好吧,结果无论如何都不是有效的json,所以\_ツ_/''它可能不是有效的json,但疯狂的系统可能需要以这种格式导入json。有更好的方法来构建json字符串,即使使用换行符和缩进,即json.stringifyobj,null,2。这还会在最后一个数组项后面添加一个逗号,该数组项无效。JSON该脚本在一年中不使用单引号。@pitaridis:非常确定这是故意的,因为否则结果是无效的JSON。@pitaridis我假设OP需要一个字符串。他们的后一个示例不是有效的JSON,因此假设这是他们想要的对象文本,那么2008和“2008”之间的差异为零。事实上,如果你把这个例子严格化,它最终会和我的一样answer@pitaridisOP说