2017-05-03 1 views
0

Ich habe eine C# -Post, die mir HTML zurückgibt. Mein Post sucht nach einem Organisationsnamen und gibt die Liste der Organisationen mit diesem Namen zurück. Mein Problem ist, dass der Beitrag das HTML für die ganze Seite zurückgibt und ich nur die Liste der Organisationen möchte. Ich denke, dass ich zu json konvertieren sollte, oder gibt es andere Möglichkeit?Convert HTML zu JSON in C#

Post-Methode:

WebRequest request = WebRequest.Create("http://www.mfinante.ro/numeCod.html"); 
// Set the Method property of the request to POST. 
request.Method = "POST"; 

// Create POST data and convert it to a byte array. 
string postData = "judet=40&name=ORACLE&submit=Vizualizare"; 
byte[] byteArray = Encoding.UTF8.GetBytes(postData); 
// Set the ContentType property of the WebRequest. 
request.ContentType = "application/x-www-form-urlencoded"; 
// Set the ContentLength property of the WebRequest. 
request.ContentLength = byteArray.Length; 

// Get the request stream. 
Stream dataStream = request.GetRequestStream(); 
// Write the data to the request stream. 
dataStream.Write(byteArray, 0, byteArray.Length); 
// Close the Stream object. 
dataStream.Close(); 

// Get the response. 
WebResponse response = request.GetResponse(); 
// Display the status. 
Console.WriteLine(((HttpWebResponse)response).StatusDescription); 
// Get the stream containing content returned by the server. 
dataStream = response.GetResponseStream(); 
// Open the stream using a StreamReader for easy access. 
StreamReader reader = new StreamReader(dataStream); 
// Read the content. 
string responseFromServer = reader.ReadToEnd(); 
// Display the content. 

Console.WriteLine(responseFromServer); 
// Clean up the streams. 
reader.Close(); 
dataStream.Close(); 
response.Close(); 
+0

1. extrahieren notwendige Informationen aus html 2. Konstrukt Objekt 3. konvertieren zu JSON –

+0

@LeiYang können Sie mir etwas Hilfe bei der Herstellung dieser Dinge geben, bitte? –

Antwort

0

auf dem Endpunkt Je, haben Sie vielleicht Glück Header auf die Anfrage ein Accept das Hinzufügen, für JSON zu fragen.

Ich weiß nicht, welche Eigenschaften, die auf einem WebRequest eingestellt werden könnte, aber es könnte in dieser Weise so etwas wie

request.Accept = "application/json"; 

sein, fragt die Anforderung den Server das Ergebnis in einem JSON-Format zurückzukehren , die für Sie nützlicher sein könnten. Wenn dies fehlschlägt, müssen Sie den Inhalt aus dem HTML extrahieren, ein Objekt konstruieren und dieses Objekt dann in JSON serialisieren.

+0

es funktioniert nicht, json zurückzugeben ... wie kann ich den Inhalt vom HTML extrahieren? –

0

Der beste Weg, um einen HTML-Code in JSON zu analysieren ist

  1. Ihre HTML Parsen HTML Agility Pack beiliegt.
  2. Je nachdem, was in Ihrem HTML-Code enthalten ist, können Sie eine Klasse in C# erstellen und daraus ein Objekt erstellen ODER Sie können eine Liste von Objekten erstellen, wenn sich der HTML-Inhalt wiederholt.

    Class MyItem 
    { 
        int employeeId = 0; 
        string employeeName = String.Empty; 
    } 
    
    List<MyItem> list = new List<MyItem>(); 
    JavaScriptSerializer js = new JavaScriptSerializer(); 
    js.Serialize(list); 
    
0

Ich werde sagen, warum Ihre Frage zu Verwirrung führen kann. Beispiel für html:

<html> 
<body> 
<p> example of paragraph </p> 
</body>  
</html> 
Example of json: 

{"employees":[ 
{"firstName":"John", "lastName":"Doe"}, 
{"firstName":"Anna", "lastName":"Smith"}, 
{"firstName":"Peter", "lastName":"Jones"} 
]} 

json ist etwas, auf dem html generiert wird oder anfängliche Grundlage. Wenn Sie also sagen, dass Sie HTML in JSON konvertieren wollen, ist das wirklich verwirrend, weil es unmöglich ist, herauszufinden, nach welchen Regeln Sie diese Konvertierung durchführen wollen. Oder welche Tags aus HTML sollten beim Erstellen von JSON ignoriert/hinzugefügt werden.

+0

Ich möchte in meinem JSON nur die Zeilen aus einer Tabelle in dieser HTML-Antwort hinzufügen –

+0

okay g jese ap hao – Aaron