【发布时间】:2019-09-30 00:45:45
【问题描述】:
我正在从前端返回一个 JSON 项目列表。它目前看起来像:
[
"[{ "_id" : ObjectId("5cbcd80e0c5c9f1dfc8bf2f3"), "price" : "$1,
399.00", "name" : "AlienwareGamingPCDesktopAuroraR7-8thGenIntelCorei7-8700,
16GBDDR4Memory,
2TBHardDrive+32GBIntelOptane,
?NVIDIAGeForceGTX10808GBGDDR5X,
Windows1064bit\", "url" : "https: //www.amazon.com/gp/product/B076BHG74V/ref=s9_acsd_zwish_hd_bw_b2N0U_>c_x_w?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=merchandised-search-11&pf_rd_r=TW0CMS0QN07XT2BM838T&pf_rd_t=101&pf_rd_p=62f4ca32-9706-51c1-a1d1-9f7214564c34&pf_rd_i=565098\", "description" : "ThenewAlienwareAuroraisamid-towerdesktopwithaMicroATXmotherboardandisalsooursmallestdual-graphicscapabledesktopandhasmoretool-lessfeaturesthananypreviousAlienwaredesktopsuchas: tool-lessgraphics,
expansioncards,
hard>drives,
andmemory.", "keywords" : ["computer"] }]"
]
当使用:console.log(results[0]) 显示结果时,它会显示整个对象。在执行 console.log(results[0].name) 或 console.log(results[0].name) 时,我得到一个未定义的错误。列表中当前只有一个对象,但对于将来的查询,将会有更多。关于如何访问单个元素的任何想法?
前端的代码是什么样子的:
.then(response => {
this.amazonItems = response.data;
console.log(this.amazonItems[0]);
查询MongoDB:
var result = collection.Find(filter).Sort(sort).ToList().ToJson();
序列化:
List<string> returnResult = new List<string>();
returnResult.Add(_sm.SearchAmazonQuery(searchQuery, _db));
response.Content = new StringContent(JsonConvert.SerializeObject(returnResult), System.Text.Encoding.UTF8, "application/json");
response.StatusCode = HttpStatusCode.OK;
return response;
控制台输出: console
【问题讨论】:
-
太多JSON。
-
请显示您的控制台的屏幕截图,将其输出复制为文本并不总是清晰的。另外,您是如何创建请求的?
-
从您下面的评论中,
returnResult是什么?我怀疑它是一个列表/数组/集合/任何已经 JSON 编码的字符串,这就是你得到这个双编码响应的原因 -
@Phil 我添加了一个答案....提供了更多信息。
标签: javascript vue.js