![](/img/trans.png)
[英]How to convert this string to JSON object in javascript/typescript?
[英]convert JSON string to JAVASCRIPT Object in Typescript
大家好,我有兩個 JSON 字符串
[{desc:"john",number:"22",designation:"manager"}]
另一個 JSON 字符串
[{名稱:“小溪”,ID:“198”,角色:“開發人員”}]
所以我需要用第二個 JSON 文件映射第一個 JSON 文件
我的輸出應該是這樣的
[{desc:"creek",number:"198",designation:"developer"}]
所以在這里我想在將我們的 JSON 字符串轉換為 JAVASCRIPT 對象時,我們只需要替換屬性..
誰能幫我這個謝謝...
您有兩種不同的類型,我們可以為它們定義打字稿類型。
type FormatOne = {
desc: string;
number: string;
designation: string;
}
type FormatTwo = {
name: string;
ID: string;
role: string;
}
我們可以創建一個函數來從一種類型映射到另一種類型。
const twoToOne = ({name, ID, role}: FormatTwo): FormatOne => ({
desc: name,
number: ID,
designation: role,
})
從字符串解析 JSON 時,您必須使用as
來斷言類型,因為 typescript 不知道類型是什么。 我們可以說它將是一個混合了兩種類型的數組。
const str = '[{desc:"john",number:"22",designation:"manager"}, {name:"creek",ID:"198",role:"developer"}]';
const arr = JSON.parse(str) as Array<FormatOne | FormatTwo>;
如果你知道你有一個所有FormatTwo
的數組,那么重新格式化它就像調用array.map(twoToOne)
一樣簡單。
當你有一個混合數組時,我們需要檢查每個元素並有條件地調用轉換器。 我們'name' in item
使用'name' in item
作為類型保護來查看item
是否為FormatTwo
。
const fixed = arr.map( item =>
('name' in item) ? twoToOne(item) : item
);
這個fixed
新數組具有FormatOne[]
類型,不需要斷言。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.