簡體   English   中英

如何從分配給字符串對象的 json 消息中提取鍵值

[英]How to extract key values from json message assigned to a string object

我正在將帶有屬性的 XML 消息轉換為 JSON 並分配給一個變量。 現在變量x具有轉換后的 JSON 消息。 現在我想從變量x(string)提取鍵值對。

請檢查以下詳細信息。 XML 消息是

<?xml version="1.0" encoding="UTF-8"?>
<OBJECT key="postorder" type="TEMP">
    <TEMP>
        <ROW order-version-id="1" 
             layout-type="2" 
             order-no="3" 
             order-action="4" 
             estimated-price="5" 
             orig-price="6" 
             quantity="7" 
             orig-quantity="8" 
             quantity-type="6" 
             trade-currency="7" 
             base-currency="8" 
             settlement-currency="9"/>
    </TEMP>
</OBJECT> 

我正在使用 fast-xml-parser 轉換它,輸出如下

{
   "OBJECT":{
      "key":"postorder",
      "type":"TEMP",
      "TEMP":{
         "ROW":{
            "order-version-id":"1",
            "layout-type":"2",
            "order-no":"3",
            "order-action":"4",
            "estimated-price":"5",
            "orig-price":"6",
            "quantity":"7",
            "orig-quantity":"8",
            "quantity-type":"6",
            "trade-currency":"7",
            "base-currency":"8",
            "settlement-currency":"9"
         }
      }
   }
}

並將其分配為var result = JSON.stringify(jsonObj); 現在字符串類型的結果具有轉換后的 JSON 消息。 從結果來看,我需要獲得基礎貨幣價值

任何線索表示贊賞。

沒有進一步的例子,我不確定這是否是你真正想要的,但據我所知:

你有這個:

let x = '{k1: v1, k2: v2, k3: v3....}'

你想要這個:

let object = {k1: v1, k2: v2,...}

最快的方法是使用 JSON.parse 功能:

let x = '{k1: v1, k2: v2, k3: v3....}';
let object = JSON.parse(x);

編輯:在您的具體示例中,您不需要使用 JSON.stringify。 您已經有一個 JSON 對象,可以像這樣訪問它:

let object = /*that parsed XML*/
let baseCurrency = object.OBJECT.TEMP.ROW['base-currency']; //this will give you the value as string

您可以使用JSON.parse函數將字符串轉換為 JSON 對象。

希望以下示例可以幫助您入門。

 const x = '{"key1":"value1","key2":"value2"}'; const json = JSON.parse(x); console.log(json.key1); console.log(json.key2);

更新(基於相關更改)

您從 fast-xml-parser 獲得的結果是一個 JSON 對象。 您無需使用JSON.stringify將其轉換為字符串。 您可以直接使用該對象並獲取base-currency值。

請參閱下面的代碼。

 const jsonObj = { "OBJECT": { "key": "postorder", "type": "TEMP", "TEMP": { "ROW": { "order-version-id": "1", "layout-type": "2", "order-no": "3", "order-action": "4", "estimated-price": "5", "orig-price": "6", "quantity": "7", "orig-quantity": "8", "quantity-type": "6", "trade-currency": "7", "base-currency": "8", "settlement-currency": "9" } } } }; const baseCurrency = jsonObj.OBJECT.TEMP.ROW["base-currency"]; console.log(baseCurrency); // 8

首先使用JSON.parse函數將字符串轉換為 JSON 對象。

const object1 =JSON.parse(jsonstr) ;
console.log(Object.keys(object1));

Object.keys() 方法返回給定對象自己的屬性名稱的數組,其順序與我們使用普通循環獲得的順序相同。

暫無
暫無

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

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