簡體   English   中英

將LinkedIn API響應正文解析為JSON

[英]Parse LinkedIn API response body to JSON

這讓我發瘋,我希望有人遇到過這種情況並提出一個干凈,優雅的解決方案。 向LinkedIn REST Api發出JSON請求時,正文會以帶換行符的字符串形式返回。 當我使用JSON.parse將字符串解析為JSON時,它似乎創建了一個JSON對象,但是我無法使用其相對鍵使用點表示法來訪問這些值。 我嘗試轉義換行符,組合JSON.stringify然后進行解析等。我無法使它正常工作,而且令人討厭,盡管我敢肯定有一個簡單的解決方案我正在忽略。 這是LinkedIn API的響應:

{“ statusCode”:200,“ body”:“ {\\ n \\” numConnections \\“:152,\\ n \\” numConnectionsCapped \\“:false \\ n}”,“標頭”:{“ server”:“ Apache-Coyote /1.1","x-li-request-id":"myid","vary":"*","x-li-format":"json","content-type":"application/json;charset = UTF-8“,” date“:”星期二,2017年1月10日00:08:01 GMT“,” x-li-fabric“:” prod-ltx1“,” transfer-encoding“:” chunked“,” x -li-pop“:” prod-ltx1“,” set-cookie“:[” lidc = \\“ b = TB70:g = 489:u = 129:i = 1484006881:t = 1484082637:s = AQG3LuLPqWuZiIoHGf2NqD8O7mRfdA4q \\”; Expires = Tue,2017年1月10日21:10:37 GMT; domain = .linkedin.com; Path = /“],” x-li-uuid“:” 53NCd2VAmBSAAWKrrSoAAA ==“},” request“:{” uri“ :{“ protocol”:“ https:”,“ slashes”:true,“ auth”:null,“ host”:“ api.linkedin.com”,“ port”:443,“ hostname”:“ api.linkedin。 com“,”哈希“:null,”搜索“:”?format = json“,”查詢“:” format = json“,”路徑名“:” / v1 / people / id = myid:(num-connections,num -connections-capped)“,” path“:” / v1 / people / id = myid:(num-connections,num-connections-capped)?format = json“,” href“:” https://api.linkedin .com / v1 / people / id = myid:(num-connections,num-connections- 上限)?format = json “},”方法“:” GET“,”標題“:{”授權“:” Bearer mytoken“}}}

我正在嘗試使用鍵“ numConnections”訪問該值,但是無法獲取該值。

使用JSON.parse(response.body)可以得到以下結果:

{“ numConnections”:152,“ numConnectionsCapped”:false}

但是我仍然無法使用以下方式訪問與每個鍵關聯的值

myObj.numConnections或我嘗試過的其他任何符號。 如何在NodeJS中從中獲得有效的JSON對象?

解析response.body的結果是一個對象-您可以在其上使用點符號或方括號符號來訪問值:

var parsedBody = JSON.parse(response.body);
parsedBody.numConnections //152
parsedBody['numConnections'] //152

嘗試

JSON.parse(JSON.stringify(response.body))

好吧,這很愚蠢。 我發現我的問題確實與Express有關,不允許Express.send(num)發送數值。 出於某種原因,控制台中沒有錯誤,結果是,我在get請求中收到未定義的值。 解析JSON並不是問題,但是將答案標記為有效。 如果其他任何人都遇到此問題,則要將數字值與對象分開時,如果要將它們作為響應發送到Express,則需要對數字值進行字符串化處理!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM