首页 > 解决方案 > 尝试在 json 上推送或添加自定义 json

问题描述

基本上,我正在使用 json 对象,但是我的技能并不多,因为我仍然是 javascript 和 json 或对象文字的新手。我试图实现我想在另一个 xml/json 文件的最后一个元素处推送或插入自定义 json 对象的位置。有什么方法可以做到这一点吗?我已经尝试了很长一段时间,但无法使其工作。知道如何使它工作吗?因为老实说,我没有剩下的了:-)

我使用 getJSON 从我的网站请求 JSON。它工作得很好,但我需要以某种方式在 json 末尾插入另一个自定义对象文字是否可能?顺便说一下,这是我的代码。

$(function() {
        $.getJSON('https://some_link_from_a_server_that_produces_xml_file_or_json',

            function(data) {
                //var dataLength = data.length;

                fillData();

                function fillData() {

                    var jsonData = [{
                        "LastModification": "04:27:48",
                        "Symbol": "EURUSD",
                        "Bid": '1.20568',
                        "Ask": "1.21238",
                        "High": '1.21789',
                        "Low": '1.19253',
                        "Direction": "-1",
                        "InserTime": "\/Date(1358760600163)\/",
                        "volume": "0"
                    }];

                    for (var i = 0; i < jsonData.length; i++) {
                        data.push([
                            parseFloat(jsonData[i].Bid),
                            parseFloat(jsonData[i].High),
                            parseFloat(jsonData[i].Low),
                            parseFloat(jsonData[i].Ask),
                            parseInt(jsonData[i].InserTime.substr(6)),
                            parseInt(jsonData[i].volume)
                        ]);
                    }
                    CreateChart();
                }  // end of function fillData()


                function CreateChart() {
                    var chart = new Highcharts.stockChart('container2',
                            {
                                title: {
                                    text: 'EUR/USD',
                                    floating: true,
                                    align: 'left',
                                    x: 0,
                                    y: 55
                                },
                                subtitle: {
                                    text: 'highest: 1.23223 / lowest: 1.21774',
                                    floating: true,
                                    align: 'left',
                                    x: 0,
                                    y: 70
                                },
                                xAxis: {
                                    gridLineWidth: 1
                                },
                                yAxis: {
                                    gridLineWidth: 1
                                },
                                rangeSelector: {
                                    buttons: [
                                        {
                                            type: 'hour',
                                            count: 1,
                                            text: '1h'
                                        }, {
                                            type: 'day',
                                            count: 1,
                                            text: '1D'
                                        }, {
                                            type: 'all',
                                            count: 1,
                                            text: 'All'
                                        }
                                    ],
                                    selected: 1,
                                    inputEnabled: true
                                },

                                series: [
                                    {
                                        name: 'EURUSD',
                                        type: 'candlestick',
                                        data: data,
                                        tooltip: {
                                            valueDecimals: 5
                                        }
                                    }
                                ]
                            }); // end of highcharts.stockchart
                }
            });
    });

标签: javascriptjson

解决方案


我认为您正在制作一个看起来像 [{...}, {...}] 的 JSON 数组
但是,在您的代码中,您正在制作一个看起来像 [[...], [.. .]]。
尝试 :

let data = [];

const func = function(data) {
	fillData();

	function fillData() {

		var jsonData = [{
			"LastModification": "04:27:48",
			"Symbol": "EURUSD",
			"Bid": '1.20568',
			"Ask": "1.21238",
			"High": '1.21789',
			"Low": '1.19253',
			"Direction": "-1",
			"InserTime": "\/Date(1358760600163)\/",
			"volume": "0"
		}];

		for (var i = 0; i < jsonData.length; i++) {
			data.push({
				Bid :parseFloat(jsonData[i].Bid),
				High : parseFloat(jsonData[i].High),
				Low : parseFloat(jsonData[i].Low),
				Ask : parseFloat(jsonData[i].Ask),
				InserTime : parseInt(jsonData[i].InserTime.substr(6)),
				Volume :parseInt(jsonData[i].volume)
			});
		}
		console.log(data);
	}  // end of function fillData()
}
func(data);


推荐阅读