Tôi đã theo dõi đối tượng JSON được tạo động và có thể chứa các ký tự đặc biệt trong các tên, ví dụ: O'Brian trong họ và các nhân vật đặc biệt trong ghi chú.
$jsonData = @"
{
"ReqId": 37,
"First Name": "John",
"Middle Name": "",
"Last Name": "O'Brian",
"Preferred Name": "John",
"Date": "04/28/2021 05:00:00",
"Email": "",
"Notes": "This is a note with Special characters"
}
"@ | ConvertTo-Json;
Tôi muốn sử dụng dữ liệu JSON này và chuyển đổi nó thành định dạng bảng HTML. Sau đó, truyền dữ liệu HTML này dưới dạng giá trị của khóa trong một đối tượng JSON khác sau đó sẽ được gửi đến API.
$convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
$ Apijson cần phải là JSON hợp lệ để API có thể phân tích nó thành một đối tượng JSON thành công.
Tôi đã thử Phương thức ConvertTO-HTML nhưng nó không hoạt động và cho bảng trống. Ngoài ra, tôi chỉ muốn phần
và cần xóa các thẻ khác....
{
"Test" : "This is Test",
"description" : "This is Test.
HTML TABLE
* 539
"
}
Cần giúp đỡ. Cảm ơn bạn.
Bỏ qua nội dung chính
Trình duyệt này không còn được hỗ trợ.
Nâng cấp lên Microsoft Edge để tận dụng các tính năng mới nhất, cập nhật bảo mật và hỗ trợ kỹ thuật.
ConvertTo-Json
- Tài liệu tham khảo
Chuyển đổi một đối tượng thành một chuỗi định dạng JSON.
Trong bài viết này
Cú pháp
ConvertTo-Json
[-InputObject]
[-Depth ]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling ]
[]
Sự mô tả
CMDlet ____10 chuyển đổi bất kỳ đối tượng .NET nào thành một chuỗi ở định dạng ký hiệu đối tượng JavaScript [JSON]. Các thuộc tính được chuyển đổi thành tên trường, các giá trị trường được chuyển đổi thành giá trị thuộc tính và các phương thức được xóa.
Ghi chú
Kể từ PowerShell 7.2, các thuộc tính hệ thống loại mở rộng của các đối tượng DateTime và chuỗi không còn được tuần tự hóa và chỉ có đối tượng đơn giản được chuyển đổi thành định dạng JSONDateTime and String objects are no longer serialized and only the simple object is converted to JSON format
Sau đó, bạn có thể sử dụng máy ảnh
$convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
1 để chuyển đổi chuỗi định dạng JSON thành đối tượng JSON, dễ dàng được quản lý trong PowerShell.Nhiều trang web sử dụng JSON thay vì XML để tuần tự hóa dữ liệu để liên lạc giữa các máy chủ và ứng dụng dựa trên web.
Kể từ PowerShell 7.1,
$convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
0 phát ra cảnh báo nếu độ sâu của đối tượng đầu vào vượt quá độ sâu được chỉ định cho lệnh. Điều này ngăn ngừa mất dữ liệu không mong muốn khi chuyển đổi các đối tượng.CMDlet này đã được giới thiệu trong Windows PowerShell 3.0.
Ví dụ
ví dụ 1
[Get-UICulture].Calendar | ConvertTo-Json
{
"MinSupportedDateTime": "0001-01-01T00:00:00",
"MaxSupportedDateTime": "9999-12-31T23:59:59.9999999",
"AlgorithmType": 1,
"CalendarType": 1,
"Eras": [
1
],
"TwoDigitYearMax": 2029,
"IsReadOnly": true
}
Lệnh này sử dụng CMDlet ____1010 để chuyển đổi đối tượng GregorianCalendar thành chuỗi có định dạng JSON.
Ví dụ 2
Get-Date | ConvertTo-Json; Get-Date | ConvertTo-Json -AsArray
"2021-08-05T16:13:05.6394416-07:00"
[
"2021-08-05T16:13:05.6421709-07:00"
]
Ví dụ này cho thấy đầu ra từ
$convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
0 CMDlet có và không có tham số chuyển đổi Asarray. Bạn có thể thấy phần thứ hai của đầu ra được bọc trong khung mảng.AsArray switch parameter. You can see the second portion of the output is wrapped in array brackets.Ví dụ 3
@{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-Json -Compress
{"Domain":"Domain01","Account":"User01","Admin":"True"}
Lệnh này cho thấy hiệu quả của việc sử dụng tham số nén của
$convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
0. Việc nén chỉ ảnh hưởng đến sự xuất hiện của chuỗi, không phải tính hợp lệ của nó.Compress parameter of $convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
0. The compression affects only the appearance of the string, not its validity.Ví dụ 4
Get-Date | Select-Object -Property * | ConvertTo-Json
{
"DisplayHint": 2,
"DateTime": "October 12, 2018 10:55:32 PM",
"Date": "2018-10-12T00:00:00-05:00",
"Day": 12,
"DayOfWeek": 5,
"DayOfYear": 285,
"Hour": 22,
"Kind": 2,
"Millisecond": 639,
"Minute": 55,
"Month": 10,
"Second": 32,
"Ticks": 636749817326397744,
"TimeOfDay": {
"Ticks": 825326397744,
"Days": 0,
"Hours": 22,
"Milliseconds": 639,
"Minutes": 55,
"Seconds": 32,
"TotalDays": 0.95523888627777775,
"TotalHours": 22.925733270666665,
"TotalMilliseconds": 82532639.774400011,
"TotalMinutes": 1375.54399624,
"TotalSeconds": 82532.6397744
},
"Year": 2018
}
Ví dụ này sử dụng CMDLET ____10 để chuyển đổi đối tượng System.Datetime từ
$convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
7 CMDlet sang chuỗi định dạng JSON. Lệnh sử dụng $convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
8 CMDlet để có được tất cả [$convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
9] của các thuộc tính của đối tượng DateTime. Đầu ra cho thấy chuỗi JSON mà $convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
0 đã trả về.System.DateTime object from the $convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
7 cmdlet to a JSON-formatted string. The command uses the $convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
8 cmdlet to get all [$convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
9] of the properties of the DateTime object. The output shows the JSON string that $convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
0 returned.Ví dụ 5
Get-Date | Select-Object -Property * | ConvertTo-Json | ConvertFrom-Json
DisplayHint : 2
DateTime : October 12, 2018 10:55:52 PM
Date : 2018-10-12 12:00:00 AM
Day : 12
DayOfWeek : 5
DayOfYear : 285
Hour : 22
Kind : 2
Millisecond : 768
Minute : 55
Month : 10
Second : 52
Ticks : 636749817527683372
TimeOfDay : @{Ticks=825527683372; Days=0; Hours=22; Milliseconds=768; Minutes=55; Seconds=52;
TotalDays=0.95547185575463; TotalHours=22.9313245381111; TotalMilliseconds=82552768.3372;
TotalMinutes=1375.87947228667; TotalSeconds=82552.7683372}
Year : 2018
Ví dụ này cho thấy cách sử dụng các CMDLE ____10 và
$convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
1 để chuyển đổi một đối tượng thành chuỗi JSON và đối tượng JSON.Thông số
-AsArray
Đầu ra đối tượng trong khung mảng, ngay cả khi đầu vào là một đối tượng.
Loại hình: | Switchparameter |
Chức vụ: | Được đặt tên |
Giá trị mặc định: | Không có |
Chấp nhận đầu vào đường ống: | Sai |
Chấp nhận ký tự ký tự đại diện: | Sai |
-Compress
Đầu vào
Loại hình: | Switchparameter |
Chức vụ: | Được đặt tên |
Giá trị mặc định: | Không có |
Chấp nhận đầu vào đường ống: | Sai |
Chấp nhận ký tự ký tự đại diện: | Sai |
-Depth
Đầu vào
Loại hình: | Sự vật |
Chức vụ: | Được đặt tên |
Giá trị mặc định: | 2 |
Chấp nhận đầu vào đường ống: | Sai |
Chấp nhận ký tự ký tự đại diện: | Sai |
-EnumsAsStrings
Đầu vào
Loại hình: | Switchparameter |
Chức vụ: | Được đặt tên |
Giá trị mặc định: | Không có |
Chấp nhận đầu vào đường ống: | Sai |
Chấp nhận ký tự ký tự đại diện: | Sai |
-EscapeHandling
Chấp nhận ký tự ký tự đại diện:
Kiểm soát cách các ký tự nhất định được thoát trong đầu ra JSON kết quả. Theo mặc định, chỉ các ký tự điều khiển [như Newline] được thoát ra.
- Các giá trị chấp nhận được là:
- Mặc định - Chỉ các ký tự điều khiển được thoát ra.
- Escapenonascii - Tất cả các nhân vật không phải là ASCII và kiểm soát đều bị trốn thoát.
EscapeHTML - HTML [
{
"Test" : "This is Test",
"description" : "This is Test.
HTML TABLE
* 539
"
}
7, {
"Test" : "This is Test",
"description" : "This is Test.
HTML TABLE
* 539
"
}
8, {
"Test" : "This is Test",
"description" : "This is Test.
HTML TABLE
* 539
"
}
9, ConvertTo-Json
[-InputObject]
[-Depth ]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling ]
[]
0, ConvertTo-Json
[-InputObject]
[-Depth ]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling ]
[]
1] và các ký tự điều khiển được thoát ra.
Loại hình: | Newtonsoft.Json.StringEscapeHandling |
Chức vụ: | Được đặt tên |
Giá trị mặc định: | Không có |
Chấp nhận đầu vào đường ống: | Sai |
Chấp nhận ký tự ký tự đại diện: | Sai |
-InputObject
Chấp nhận ký tự ký tự đại diện:
Kiểm soát cách các ký tự nhất định được thoát trong đầu ra JSON kết quả. Theo mặc định, chỉ các ký tự điều khiển [như Newline] được thoát ra.InputObject parameter is required, but its value can be null [
ConvertTo-Json
[-InputObject]
[-Depth ]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling ]
[]
3] or an empty string. When the input object is ConvertTo-Json
[-InputObject]
[-Depth ]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling ]
[]
3, $convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
0 returns the JSON representation of ConvertTo-Json
[-InputObject]
[-Depth ]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling ]
[]
6. When the input object is an empty string, $convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
0
returns the JSON representation of an empty string.
Loại hình: | Các giá trị chấp nhận được là: |
Chức vụ: | 0 |
Giá trị mặc định: | Không có |
Chấp nhận đầu vào đường ống: | Sai |
Chấp nhận ký tự ký tự đại diện: | Sai |
Chấp nhận ký tự ký tự đại diện:
Kiểm soát cách các ký tự nhất định được thoát trong đầu ra JSON kết quả. Theo mặc định, chỉ các ký tự điều khiển [như Newline] được thoát ra.
Các giá trị chấp nhận được là:
Mặc định - Chỉ các ký tự điều khiển được thoát ra.
Escapenonascii - Tất cả các nhân vật không phải là ASCII và kiểm soát đều bị trốn thoát.
EscapeHTML - HTML [{
"Test" : "This is Test",
"description" : "This is Test.
HTML TABLE
* 539
"
}
7, {
"Test" : "This is Test",
"description" : "This is Test.
HTML TABLE
* 539
"
}
8, {
"Test" : "This is Test",
"description" : "This is Test.
HTML TABLE
* 539
"
}
9, ConvertTo-Json
[-InputObject]
[-Depth ]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling ]
[]
0, ConvertTo-Json
[-InputObject]
[-Depth ]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling ]
[]
1] và các ký tự điều khiển được thoát ra.
{
"Test" : "This is Test",
"description" : "This is Test.
HTML TABLE
* 539
"
}
{
"Test" : "This is Test",
"description" : "This is Test.
HTML TABLE
* 539
"
}
{
"Test" : "This is Test",
"description" : "This is Test.
HTML TABLE
* 539
"
}
ConvertTo-Json
[-InputObject]
[-Depth ]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling ]
[]
ConvertTo-Json
[-InputObject]
[-Depth ]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling ]
[]
Tham số này đã được giới thiệu trong PowerShell 6.2.
- Mặc định
- ConvertFrom-Json
- Get-Content
- Get-UICulture
- Invoke-WebRequest
- Invoke-RestMethod
- NewtonSoft.Json.StringEscapeHandling
Chỉ định các đối tượng để chuyển đổi sang định dạng JSON. Nhập một biến chứa các đối tượng hoặc nhập lệnh hoặc biểu thức có được các đối tượng. Bạn cũng có thể đặt một đối tượng đến $convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
0.
$convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
Tham số InputObject là bắt buộc, nhưng giá trị của nó có thể là null [
ConvertTo-Json
[-InputObject]
[-Depth ]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling ]
[]
3] hoặc một chuỗi trống. Khi đối tượng đầu vào là ConvertTo-Json
[-InputObject]
[-Depth ]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling ]
[]
3, $convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
0 trả về biểu diễn JSON của ConvertTo-Json
[-InputObject]
[-Depth ]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling ]
[]
6. Khi đối tượng đầu vào là một chuỗi trống, $convData = ConvertTo-Html -InputObject [$jsonData];
$apiJson = @"
{
"Title" : "This is Test",
"Description" : "This is Test Description.
$convData"
}
"@
0 sẽ trả về biểu diễn JSON của một chuỗi trống.