[ad_1]
この結果を取得するには、serialez json オブジェクトを試してください:
"HEADER""DATETIMEISSUED""2022-12-25T00:34:00Z""RECEIPTNUMBER""INV-2012""UUID""""PREVIOUSUUID""""REFERENCEOLDUUID""""CURRENCY""EGP""EXCHANGERATE""0""SORDERNAMECODE""SORDERNAMECODE""ORDERDELIVERYMODE""FC""DOCUMENTTYPE""RECEIPTTYPE""SC""TYPEVERSION""1.2""SELLER""RIN""619013583""COMPANYTRADENAME""شركة الصوفى""BRANCHCODE""0""BRANCHADDRESS""COUNTRY""EG""GOVERNATE""CAIRO""REGIONCITY""CITY CENTER""STREET""16 STREET""BUILDINGNUMBER""14BN""POSTALCODE""74235""FLOOR""1F""ROOM""3R""LANDMARK""TAHRIR SQUARE""ADDITIONALINFORMATION""TALAAT HARB STREET""DEVICESERIALNUMBER""SOFT2010""ACTIVITYCODE""5610""BUYER""TYPE""F""ID""313717919""NAME""TAXPAYER 1""MOBILENUMBER""+201020567462""PAYMENTNUMBER""987654""ITEMDATA""ITEMDATA""INTERNALCODE""880609""DESCRIPTION""SAMSUNG A02 32GB_LTE_BLACK_DS_SM-A022FZKDMEB_A022 _ A022_SM-A022FZKDMEB""ITEMTYPE""GS1""ITEMCODE""EG-619013583-102""UNITTYPE""EA""QUANTITY""35""UNITPRICE""247.96000""NETSALE""7810.74000""TOTALSALE""8678.60000""TOTAL""8887.04360""COMMERCIALDISCOUNTDATA""COMMERCIALDISCOUNTDATA""AMOUNT""867.86000""DESCRIPTION""XYZ""ITEMDISCOUNTDATA""ITEMDISCOUNTDATA""AMOUNT""10""DESCRIPTION""ABC""ITEMDISCOUNTDATA""AMOUNT""10""DESCRIPTION""XYZ""VALUEDIFFERENCE""20""TAXABLEITEMS""TAXABLEITEMS""TAXTYPE""T1""AMOUNT""1096.30360""SUBTYPE""V009""RATE""14""TOTALSALES""8678.60000""TOTALCOMMERCIALDISCOUNT""867.86000""TOTALITEMSDISCOUNT""20""EXTRARECEIPTDISCOUNTDATA""EXTRARECEIPTDISCOUNTDATA""AMOUNT""0""DESCRIPTION""ABC""NETAMOUNT""7810.74000""FEESAMOUNT""0""TOTALAMOUNT""8887.04360""TAXTOTALS""TAXTOTALS""TAXTYPE""T1""AMOUNT""1096.30360""PAYMENTMETHOD""C""ADJUSTMENT""0"
私が試したこと:
If jObj.Type = JTokenType.String Then Return "" & jObj.Value(Of String)() & "" End If Dim serializedString As StringBuilder = New StringBuilder() For Each item In jObj.Children().ToList If item.Type <> JTokenType.Array Then Dim jObjItem = item.ToObject(Of JObject)() For Each itemKeyPair In jObjItem serializedString.Append(Chr(34) & itemKeyPair.Key.ToUpper() & Chr(34)) 'serializedString.Append(itemKeyPair.Value.ToString) serializedString.Append(Serialize(item)) ' serializedString.Append(Chr(34) & itemKeyPair.Value.ToString & Chr(34)) Next End If ' JsonObject2 := JSONObject.SelectToken('item.CityAliases'); 'FOREACH Element IN JSONObject2 DO ' BEGIN ' Value := JSONObject2.SelectToken('Item.CityAliasName'); ' If CONFIRM('AliasName = ' + FORMAT(Value)) THEN; <<--Returns NULL ' END; If item.Type = JTokenType.Array Then Dim jArrItem = item.ToObject(Of JArray)() serializedString.Append("" & jArrItem.ToString & "") For Each jobjsItems In jArrItem.Children() Dim jObjItem = jobjsItems.ToObject(Of JObject)() For Each itemKeyPair In jObjItem serializedString.Append("" & itemKeyPair.Key.ToUpper() & "") serializedString.Append(Serialize(item)) Next Next End If Next Return serializedString.ToString()
解決策 1
これは JSON ではありません。連結された二重引用符のペアで区切られた一連の文字列です。
JSON データは階層的で、次のサンプル配列のようになります。
JSON
[ { color: "red", value: "#f00" }, { color: "green", value: "#0f0" }, { color: "blue", value: "#00f" }, { color: "cyan", value: "#0ff" }, { color: "magenta", value: "#f0f" }, { color: "yellow", value: "#ff0" }, { color: "black", value: "#000" } ]
私はあなたが生成することが期待されているものを正確にチェックすることから始めます。JSON の場合は、Newtonsoft.Json のようなものを使用して生成します。
解決策 2
Pseudo Code Implementation Implementation for JSON: function string Serialize(documentStructure) if documentStructure is simple value type return """ + documentStructure.value + """ end if var serializedString = "" foreach element in the structure: if element is not array type serializeString.Append (""" + element.name.uppercase + """) serializeString.Append ( Serialize(element.value) ) end if if element is of array type serializeString.Append (""" + element.name.uppercase + """) foreach array element in element: // use below line for JSON because subelements of array in JSON do not have own names serializeString.Append (""" + element.name.uppercase + """) serializeString.Append ( Serialize(arrayelement.value) ) end foreach end if end foreach return serializedString end function
解決策 3
OriginalGriff が指摘しているように、これは JSON データではありません。 ここで有効な JSON データがあるかどうかを確認できます。 JSON オンラインバリデーターおよびフォーマッター – JSON Lint[^]
私はこのテーマに関する包括的な記事シリーズも書いています。その最初の記事は次のとおりです。 C# と VB で Newtonsoft.Json を操作する[^]. 彼らはあなたのすべての質問に答えるはずです。
[ad_2]
コメント