2017-01-21 1 views
1

JSON 형식을 사용할 수있는 CURL 명령을 게시하고 싶습니다. 나는 인터넷을 검색하여 API에 게시하기 위해 CSV 파일을 JSON 형식으로 변환하는 방법을 vb.net 코드로 찾을 수 없습니다. 어떤 충고라도 받아 들였다.CSV 파일을 JSON으로 변환

다음은 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 

내가 더 적용 예제를 제공 할 수 있기를 같은 데이터가 보이는 것을 아무 생각이 당신에게

+0

CSV 파일은 데이터 행을 포함 할 수 없다 (더 필드/속성 이름을!). 호출하는 끝점에서 JSON 객체가 특정 속성을 가질 것으로 기대합니까? Newtonsoft.Json nuget 패키지를 사용하여 JSON에 직렬화하십시오. – plukich

+0

'lumenworks' 또는'microsoft.ace.oledb'와 같은 라이브러리를 사용하여 CSV 파일을'DataTable'에로드하십시오. 그런 다음'newtonsoft.json' 라이브러리를 사용하여 - 데이터 테이블을 JSON –

+1

*로 변환 * "이 질문은 VB.Net 2013 사용 방법을 묻는 중 유일합니다."- 그 고유점은 무엇입니까? –

답변

1

감사 사용하는 방법을 묻는으로 이 질문은 고유합니다. 따라서 임의의 데이터를 사용하여 시작 CSV :

이름, StockNum, 색상, - 남은, 가격, ItemDate
turpis Nullam의 sagitt, K94-ZS89, 블랙, 1,8.71,1/2천17분의 12 12시 : 자정
suscipit의 eget, Z25-XQKU, 토파즈, 0,14.48,1/2천17분의 14 그리고 오전 12시 0분 0초

, 클래스는 운전하기 :

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 

CSV로 읽고 변환하는 것은 JSON.NET과 CSVH를 사용하여 간단합니다. elper :이 IEnumerable을 사용하는

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 

주 (그러나 대신 목록 또는 배열을 사용할 수 있습니다). 이로 인해 많은 기록이있는 경우 특히 경제적으로 빠릅니다. 실제로 앱에로드되지 않고 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" 
} 
... 
] 
+0

고마워요. 정확히 내가 찾고있는 것, 당신은 저를 구 했어요! – wpcoder