2017-05-17 58 views
0

我試圖將由我的紅色節點流生成的java腳本對象傳遞給JSON格式。但這導致我很難知道如何去做。 獲得的對象腳本是一個小時和分鐘,寫在屏幕上,例如「13:02」。在「結果」畫面,我需要JSON格式JavaScript對象到JSON節點 - 紅色

{"time": "hh: mm"} 

看到,但我得到「HH:MM」在屏幕上,但我認爲不是JSON。

而且當我提交URL到客戶端的Web服務,我嘗試檢查結果以JSON我得到這個錯誤: 出現錯誤解析JSON數據

這是代碼:

msg.headers = {"Content-type" : "application/json"} 
var now  = new Date(); 
var hour = now.getHours(); 
var minute = now.getMinutes(); 
if(hour.toString().length == 1) { 
var hour = '0'+hour;} 
if(minute.toString().length == 1) { 
var minute = '0'+minute; 
} 
msg.payload = hour+':'+minute; 
JSON.stringify({"time": msg.payload}); 
return msg;` 

調試消息告訴我它是S字符串:

enter image description here

回答

1

如果你想返回一個JSON對象,那麼你不應該完全可以使用JSON.stringify()函數。只需在有效載荷字段中組裝要發送的對象。

msg.headers = {"Content-type" : "application/json"} 
var now  = new Date(); 
var hour = now.getHours(); 
var minute = now.getMinutes(); 
if(hour.toString().length == 1) { 
    var hour = '0'+hour; 
} 
if(minute.toString().length == 1) { 
    var minute = '0'+minute; 
} 
msg.payload = { 
    "time": hour+':'+minute 
} 
return msg; 

而且反之亦然我們從中轉換msg.payload托盤JSON的節點,如果你確實需要的對象轉換爲字符串和。

enter image description here

0

將結果分配給一個變量。 JSON.stringify將返回一個新的對象:msg也不會受到影響

msg.payload = hour+':'+minute; 
var newMsg = JSON.stringify({"time": msg.payload}); 
return newMsg; 

var msg = {}; 
 

 
var now  = new Date(); 
 
var hour = now.getHours(); 
 
var minute = now.getMinutes(); 
 

 
if(hour.toString().length == 1) { 
 
    hour = '0'+hour; 
 
} 
 

 
if(minute.toString().length == 1) { 
 
    minute = '0'+minute; 
 
} 
 
msg.payload = hour+':'+minute; 
 
var newMsg = JSON.stringify({"time": msg.payload}); 
 
console.log(newMsg);

+0

雖然這可能做一些事情,我不認爲它的OP想要的東西。爲了有用,返回的消息必須有一個有效載荷,但是newMsg不會,並且無論如何看到@hardilib答案。 – barny