Dictionary 在云代码中创建ParseObject作为键的字典只会给出[Object Object]
我正在Parse.com中用java脚本创建一个类似于以下内容的字典Dictionary 在云代码中创建ParseObject作为键的字典只会给出[Object Object],dictionary,parse-platform,Dictionary,Parse Platform,我正在Parse.com中用java脚本创建一个类似于以下内容的字典[,List]。此字典在response.success中设置,用于客户端检索。我的问题是在客户端,我只收到dictionary中的一行,因为Parse.com没有序列化密钥。它正确地序列化了值。在键中,它只插入[Object Object],所以每次在映射中保存键值对时都会被重写 这是我的密码 query.find({ success: function(eventResults) { console
[,List]
。此字典在response.success
中设置,用于客户端检索。我的问题是在客户端,我只收到dictionary中的一行,因为Parse.com没有序列化密钥。它正确地序列化了值。在键中,它只插入[Object Object]
,所以每次在映射中保存键值对时都会被重写
这是我的密码
query.find({
success: function(eventResults) {
console.log("Got results from Event table");
var speakersList = {};
// we now will get complete event speaker table and process it in a loop
// then make a dictionary
var query = new Parse.Query("EventSpeaker");
query.include("SpeakerId");
query.include("EventId");
query.find({
success: function(eventSpeakerResults) {
// now we have all event speaker table
console.log("Got results from EventSpeaker table");
for(var i = 0; i < eventResults.length; i++)
{
var speakersInThisEvent = [];
// notice this idiot "id" here it ate my 1 hour :-/
var eventObjectId = eventResults[i].id;
console.log("EventId: " + eventObjectId);
for(var j = 0; j < eventSpeakerResults.length; j++)
{
if(eventObjectId == eventSpeakerResults[j].get("EventId").id)
{
console.log("Found a match !!");
speakersInThisEvent.push(eventSpeakerResults[j].get("SpeakerId"));
}
}
// this logs prints perfectly
console.log(eventResults[i].get("Location"));
//eventResults[i].Location = eventResults[i].get("Location");
//speakersList[JSON.stringify(eventResults[i])] = speakersInThisEvent;
//this is what creating issues eventResult[i] is always same (Object object)
speakersList[eventResults[i]] = speakersInThisEvent;
}
// to be called only once
response.success(speakersList);
},
error: function() {
response.error("EventSpeaker Querying failed");
}
});
},
query.find({
成功:函数(eventResults){
log(“从事件表获得结果”);
var speakersList={};
//现在我们将得到完整的事件演讲者表,并在循环中处理它
//然后编一本字典
var query=newparse.query(“EventSpeaker”);
查询。包括(“SpeakerId”);
查询。包括(“事件ID”);
查询.查找({
成功:函数(eventSpeakerResults){
//现在我们有了所有的活动发言人表
log(“从EventSpeaker表获得结果”);
对于(var i=0;i
这里,在keys中,我只得到了
[Object Object]
。我不能使用JSON.stringify()
作为它内部的字符串化指针对象。问题是,您试图使用Parse.Object作为对象键。JavaScript只支持字符串和数字作为对象的键
在这种情况下,我将使用eventResults[I].id
作为speakerList
对象中的键
如果需要返回几个不同的对象,如扬声器阵列和这些键要映射回的对象阵列,则可以在响应中将它们包装在另一个对象中返回:
response.success({
speakers : speakersList,
events : eventResults
});
然后,您将在响应中发送所有内容。好的,我得到了答案,但是,在我的情况下,每个事件都有一个演讲者列表。我如何才能以包装对象的方式将事件映射到相应的speakerlist?映射已经存在。speakerlist将事件对象ID映射到事件中的演讲者数组。一旦您知道对于事件,您可以使用
speakersList[event.id]