Hướng dẫn powershell convert json to html - powershell chuyển đổi json sang html

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.

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.

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.

Tôi có thể chuyển đổi JSON thành HTML không?

Chỉ cần kéo và thả tệp JSON của bạn trên biểu mẫu tải lên, chọn định dạng đầu ra mong muốn và nhấp vào nút Chuyển đổi. Sau khi hoàn thành chuyển đổi, bạn có thể tải xuống tệp HTML của mình. Bạn thậm chí có thể thực hiện chuyển đổi nâng cao hơn. Ví dụ: bạn có thể chuyển đổi các tài liệu được bảo vệ bằng mật khẩu.drag and drop your JSON file on upload form, choose the desired output format and click convert button. Once conversion completed you can download your HTML file. You even can perform more advanced conversions. For example you can convert password protected documents.

Bạn có thể mã HTML trong PowerShell không?

Như bạn có thể thấy trong ảnh chụp màn hình bên dưới, PowerShell tạo ra tất cả các phần tử HTML cơ bản khi đầu ra được điều khiển để chuyển đổi màn hình HTML.Khi bạn sử dụng tham số phân đoạn, PowerShell chỉ tạo phần tử bảng HTML.Các yếu tố ,, và những người khác bị bỏ qua.PowerShell generates all basic HTML elements when the output is piped to ConvertTo-Html cmdlet. When you use the Fragment parameter, PowerShell generates the HTML table element only. The elements , , , , and others are omitted.

Tôi có thể sử dụng JSON trong PowerShell không?

Powershell và Json.Để tận dụng JSON bằng cách sử dụng PowerShell, chúng ta phải được làm quen với hai cmdlet rất quan trọng: Convertto-Json và ConvertFrom-Json..ConvertTo-JSON and ConvertFrom-JSON. [For those using PowerShell 7, be aware there have been changes and additions to the JSON cmdlets.] There are several ways to manipulate JSON files in PowerShell.

Làm thế nào tích hợp HTML với PowerShell?

PowerShell cung cấp một cmdlet tích hợp có tên là ConvertTO-HTML.Điều này lấy các đối tượng làm đầu vào và chuyển đổi từng đối tượng thành một trang web HTML.Để sử dụng điều này, chỉ cần lấy đầu ra và gửi nó trực tiếp đến ConvertTO-HTML.CMDLET sau đó sẽ trả lại một chuỗi lớn HTML.take the output and pipe it directly to ConvertTo-Html. The cmdlet will then return a big string of HTML.

Bài Viết Liên Quan

Chủ Đề