[英]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.