VSマクロの変換Jsonデータフォーマット.
5023 ワード
IE 9+,Chrome,JsonのKey順に並べ替えられます.このアプローチは、順序を必要とするデータにとって、災害です.
次のようにフォーマットをカスタマイズします.
1.文字列
2.ツリー構造がありません.
3.{}フラグがありません.
4.各オブジェクトは「,」で区切られます.
5.各キー値ペアは「:」で区切られます.
元Json:{"Id":1,"Name":"張三"}
変換後:「Id:1,Name:張三」
次のようにフォーマットをカスタマイズします.
1.文字列
2.ツリー構造がありません.
3.{}フラグがありません.
4.各オブジェクトは「,」で区切られます.
5.各キー値ペアは「:」で区切られます.
元Json:{"Id":1,"Name":"張三"}
変換後:「Id:1,Name:張三」
Sub Json2MyStringJson()
Dim strJson As String
Dim ja As String() 'json array
Dim jsa As String() ' json sub array
Dim retVal As New List(Of String)()
Dim pja As String() ' p proced json array
Dim pjsa As String() ' p proced json sub array
strJson = DTE.ActiveDocument.Selection.Text
strJson = strJson.Trim()
If (strJson.StartsWith("{") And strJson.EndsWith("}")) Then
strJson = strJson.Substring(1, strJson.Length - 2).Trim()
ja = strJson.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
For Each a In ja
jsa = a.Trim().Split(":".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
retVal.Add(jsa(0).Trim().Trim(""""c) + ":" + jsa(1).Trim().Trim(""""c))
Next
DTE.ActiveDocument.Selection.Text = """" + String.Join(",", retVal.ToArray()) + """"
Else : MsgBox("Json { } ")
End If
End Sub