以下两个不同的代码片段似乎与我相同:
var myArray = Array();
myArray['A'] = "Athens";
myArray['B'] = "Berlin";
Run Code Online (Sandbox Code Playgroud)
和
var myObject = {'A': 'Athens', 'B':'Berlin'};
Run Code Online (Sandbox Code Playgroud)
因为它们的行为都相同,而且typeof(myArray) == typeof(myObjects)(都产生'对象').
这些变体之间有什么区别吗?
我正在试图找出我的json序列化出了什么问题,使用我的应用程序的当前版本和旧版本,并且在JSON.stringify()的工作方式中发现了一些令人惊讶的差异(使用来自json.org的JSON库) ).
在我的应用程序的旧版本中:
JSON.stringify({"a":[1,2]})
Run Code Online (Sandbox Code Playgroud)
给了我这个;
"{\"a\":[1,2]}"
Run Code Online (Sandbox Code Playgroud)
在新版本中,
JSON.stringify({"a":[1,2]})
Run Code Online (Sandbox Code Playgroud)
给了我这个;
"{\"a\":\"[1, 2]\"}"
Run Code Online (Sandbox Code Playgroud)
任何想法可以改变什么使相同的库在新版本的数组括号周围放置引号?
如何将JavaScript关联数组转换为JSON?
我尝试过以下方法:
var AssocArray = new Array();
AssocArray["a"] = "The letter A"
console.log("a = " + AssocArray["a"]);
// result: "a = The letter A"
JSON.stringify(AssocArray);
// result: "[]"
Run Code Online (Sandbox Code Playgroud) 所以我正在创建一个包含元素信息的数组.我遍历所有元素并保存索引.出于某种原因,我无法将此数组转换为json对象!
这是我的数组循环:
var display = Array();
$('.thread_child').each(function(index, value){
display[index]="none";
if($(this).is(":visible")){
display[index]="block";
}
});
Run Code Online (Sandbox Code Playgroud)
我尝试通过以下方式将其转换为JSON对象:
data = JSON.stringify(display);
Run Code Online (Sandbox Code Playgroud)
它似乎没有发送正确的JSON格式!
如果我像这样手动编码,它可以工作并发送信息:
data = {"0":"none","1":"block","2":"none","3":"block","4":"block","5":"block","6":"block","7":"block","8":"block","9":"block","10":"block","11":"block","12":"block","13":"block","14":"block","15":"block","16":"block","17":"block","18":"block","19":"block"};
Run Code Online (Sandbox Code Playgroud)
当我对JSON.stringify对象发出警报时,它看起来与手动编码的对象相同.但它不起作用.
我疯了试图解决这个问题!我在这里错过了什么?发送此信息以获得手动编码格式的最佳方法是什么?
我使用这个ajax方法发送数据:
$.ajax({
dataType: "json",
data:data,
url: "myfile.php",
cache: false,
method: 'GET',
success: function(rsp) {
alert(JSON.stringify(rsp));
var Content = rsp;
var Template = render('tsk_lst');
var HTML = Template({ Content : Content });
$( "#task_lists" ).html( HTML );
}
});
Run Code Online (Sandbox Code Playgroud)
使用GET方法,因为我正在显示信息(不更新或插入).只将显示信息发送到我的php文件.
结束解决方案
var display = {};
$('.thread_child').each(function(index, value){
display[index]="none";
if($(this).is(":visible")){
display[index]="block";
}
});
$.ajax({
dataType: "json",
data: display, …Run Code Online (Sandbox Code Playgroud) 我有一个javascript关联数组,如下所示
var my_cars= new Array()
my_cars["cool"]="Mustang";
my_cars["family"]="Station Wagon";
my_cars["big"]="SUV";
Run Code Online (Sandbox Code Playgroud)
我想使用Stringify将其转换为json对象.我想知道转换后json对象的样子.
当我有这个对象时如何将它再次转换回关联数组.
我正在用php laravel和编写一个程序react.js.但我对这些很新.无论如何react,我正在发送API请求ajax.
像这样:
const sendquery = {
"async": true,
"crossDomain": true,
"url": url,
"method": "POST",
"headers": {
"Authorization": "Bearer " + tkid,
"Accept": "application/json",
"Content-Type": "application/json",
},
"processData": false,
"data": query
};
$.ajax(sendquery).done(function (response) {
console.log('Survey Request :' + response);
});
Run Code Online (Sandbox Code Playgroud)
还有另一个API请求在我打印时很好,console.log()因为它们是数组类型.但这一定是json.我用Postman测试了API 一切正常.但我仍然有这样的输出:
Survey Request :[object Object]
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
在JavaScript中,您可以拥有对象,如下所示:
var a = { foo: 12, bar: 34 };
Run Code Online (Sandbox Code Playgroud)
或者带有键(命名)索引的数组,如下所示:
var b = [];
b['foo'] = 56;
b['bar'] = 78;
Run Code Online (Sandbox Code Playgroud)
它们有点类似,但显然不一样.
现在奇怪的是,JSON.stringify似乎没有接受数组.没有错误或任何东西,JSON.stringify(b)只会产生[].
看到这个jsfiddle示例.我做错了什么,或者我只是误解了数组是如何工作的?
var clients = [];
var tmp = [];
tmp["username"] = rows[0].username;
tmp["rank"] = rows[0].rank;
tmp["lastaction"] = "0";
tmp["connection"] = connection;
clients.push(tmp);
JSON.stringify(clients)
Run Code Online (Sandbox Code Playgroud)
我初始化了一个数组(客户端)并将关联数组(tmp)推送到客户端数组。但如果我“字符串化”客户端,它只会返回“[[]]”。
我做错了什么?
先感谢您。
在Javascript中我尝试使用stringify,但它一直返回一个空字符串.这有什么不对?随意编辑小提琴.
JS
values = [];
values['belopp'] = 2322;
values['test'] = 'jkee';
str = JSON.stringify(values);
console.log(values);
console.log(str); // Expected to show a json array
Run Code Online (Sandbox Code Playgroud)
JS小提琴
javascript ×8
json ×7
arrays ×4
object ×2
stringify ×2
ajax ×1
node.js ×1
prototypejs ×1
reactjs ×1
string ×1
typescript ×1