iT邦幫忙

0

postman的JSON格式轉換

Zaku 2017-10-17 16:30:375049 瀏覽

想請問一下我透過postman去傳送一個JSON格式時,
他要求的格式好像比較嚴格,
因我自動產出的格式大概是這樣:
{ name: 'file',
time: 'Tue Oct 17 2017 00:00:00 GMT+0800 (台北標準時間)',
}

但postman所需要的格式是:
{ "name": "file",
"time": "Tue Oct 17 2017 00:00:00 GMT+0800 (台北標準時間)",
}

全雙" ",資料小一點還好大一點很難手動改,請問有什麼方式或工具可以轉換這樣的格式嗎

dog830228 iT邦新手 1 級 ‧ 2017-10-17 17:49:21 檢舉
你的資料來源是?
Zaku iT邦新手 5 級 ‧ 2017-10-18 13:46:40 檢舉
nodejs後台

2 個回答

1
dog830228
iT邦新手 1 級 ‧ 2017-10-17 17:12:55
{ name: 'file',
time: 'Tue Oct 17 2017 00:00:00 GMT+0800 (台北標準時間)'
}

版主自動產生的格式有點問題
你可使用http://json.parser.online.fr/ 來看看

以下才是正確Json格式

{ "name": "file",
"time": "Tue Oct 17 2017 00:00:00 GMT+0800 (台北標準時間)"
}

Json的Key一定要""雙引號

可能你要調整一下你產Json格式工具的程式

Zaku iT邦新手 5 級 ‧ 2017-10-18 13:44:32 檢舉

那個線上工具我試過轉不太出來

fillano iT邦超人 1 級 ‧ 2017-10-22 21:14:44 檢舉

你自動產生Javascript物件,然後用JSON.stringify()轉成合法的JSON字串不是比較省事?

Zaku iT邦新手 5 級 ‧ 2017-10-26 09:23:48 檢舉

喔!!好像可以,讚嘆大師

2
timloo
iT邦研究生 2 級 ‧ 2017-10-18 10:10:45

試如 @dog830228 所言,可從資料來源修改成正確的json格式,
如果沒法從來源修改,
那就用流傳千古的正規(則)表達式的方法替換。

這種問題,網路上有人問,我用json variable add double quote 這幾個字 google,
在stackoverflow裏有類似的問答

給了一段範例code,

str.replace(/([a-zA-Z0-9-]+):([a-zA-Z0-9-]+)/g, "\"$1\":\"$2\"");

因為你的時間格式裏也有冒號:,及你的value已有單引號,
所以
我小改成

	var str=	"{ name: 'file',time: 'Tue Oct 17 2017 00:00:00 GMT+0800 (台北標準時間)',}";

        console.log(str.replace(/([a-zA-Z]+):/g, "\"$1\":"));

效果是

{ "name": 'file',"time": 'Tue Oct 17 2017 00:00:00 GMT+0800 (台北標準時間)',}

你可以用線上版的正則式替換,google "regular expression online",還蠻多的。

整批加上雙引號。

Zaku iT邦新手 5 級 ‧ 2017-10-18 13:47:40 檢舉

所以只能自力救濟了orz

幫qq 加油

Zaku iT邦新手 5 級 ‧ 2017-10-26 09:21:23 檢舉

QQ

我要發表回答

立即登入回答