簡體   English   中英

將 CSV 文件轉換為 JSON

[英]Convert CSV File to JSON

我想發布接受 JSON 格式的 CURL 命令。 我在互聯網上搜索並找不到 vb.net 代碼如何將 CSV 文件轉換為 JSON 格式以便發布到 API。 任何建議表示贊賞。

這是我用來發布到 API 的代碼。 這個問題是獨一無二的,因為它詢問如何使用 VB.Net 2013

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

    Dim wHeader As WebHeaderCollection = New WebHeaderCollection()
    wHeader.Clear()
    wHeader.Add("X-Appery-Database-Id: xxxxxxxxxxx")
    wHeader.Add("X-Appery-Session-Token:" & token)

    Dim sUrl As String = "https://api.appery.io/"
    'sUrl = System.Net.WebUtility.UrlEncode(sUrl)
    Dim wRequest As HttpWebRequest = DirectCast(System.Net.HttpWebRequest.Create(sUrl), HttpWebRequest)

    wRequest.ContentType = "application/json"

    wRequest.Headers = wHeader
    wRequest.Method = "POST"  

    Dim stream = wRequest.GetRequestStream()
    stream.Write(jsonDataBytes, 0, jsonDataBytes.Length)
    stream.Close()

    Dim wResponse As HttpWebResponse = DirectCast(wRequest.GetResponse(), HttpWebResponse)
    Dim sResponse As String = ""

    Using srRead As New StreamReader(wResponse.GetResponseStream())
       sResponse = srRead.ReadToEnd()
       Console.Write(sResponse)
       MsgBox(sResponse.ToString())

    End Using
End Sub

謝謝

我不知道數據是什么樣子才能給出一個更適用的例子。 因此,使用隨機數據,起始 csv:

名稱、庫存編號、顏色、現貨、價格、商品日期
turpis Nullam sagitt,K94-ZS89,Black,1,8.71,1/12/2017 12:00:00 AM
suscipit eget,Z25-XQKU,Topaz,0,14.48,1/14/2017 12:00:00 AM

然后,一個類來驅動它:

Public Class Something
    Public Property Name As String
    Public Property StockNum As String
    Public Property Color As String
    Public Property OnHand As Integer
    Public Property Price As Decimal
    Public Property ItemDate As DateTime

    Public Sub New()

    End Sub
End Class

使用 JSON.NET 和 CSVHelper 讀取 CSV 並進行轉換很簡單:

Dim things As IEnumerable(Of Something)
Dim jstr As String

Using sr As New StreamReader("C:\Temp\Json\CSVTOJson.csv"),
    csv As New CsvReader(sr)

    things = csv.GetRecords(Of Something)()
    jstr = JsonConvert.SerializeObject(things)
End Using

請注意,這使用了IEnumerable (但您可以改用列表或數組)。 這使得它經濟且可能更快,尤其是在有很多記錄的情況下。 它們實際上不會加載到您的應用程序中,只是傳遞給 JSON.NET 以讀取和序列化它們。

結果:

[{
    "Name": "turpis Nullam sagitt",
    "StockNum": "K94-ZS89",
    "Color": "Black",
    "OnHand": 1,
    "Price": 8.71,
    "ItemDate": "2017-01-12T00:00:00"
}, {
    "Name": "suscipit eget",
    "StockNum": "Z25-XQKU",
    "Color": "Topaz",
    "OnHand": 0,
    "Price": 14.48,
    "ItemDate": "2017-01-14T00:00:00"
}, {
    "Name": "Proin faucibus arcu",
    "StockNum": "F64-WS5X",
    "Color": "Topaz",
    "OnHand": 6,
    "Price": 12.83,
    "ItemDate": "2017-01-18T00:00:00"
}
...
]

暫無
暫無

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

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