Home >Backend Development >C++ >How to Deserialize Line-Delimited JSON in C# using JSON.NET?

How to Deserialize Line-Delimited JSON in C# using JSON.NET?

Susan Sarandon
Susan SarandonOriginal
2025-01-22 16:52:10631browse

How to Deserialize Line-Delimited JSON in C# using JSON.NET?

Serialization and deserialization of newline-delimited JSON data in C#

In C#, you can leverage the JSON.NET library to process newline-delimited JSON data. This format of JSON data is essential for interacting with services like Google BigQuery.

Serialization and deserialization process

You can use JsonTextReader to parse newline-delimited JSON data. The specific steps are as follows:

  1. Create a POCO class (such as Foo or Person) to represent the JSON data structure.
  2. Initialize the SupportMultipleContent object using the true flag set to JsonTextReader. This is essential for handling multiple JSON objects in a single stream.
  3. Deserialize each JSON object using JsonSerializer.

If you need to store the deserialized results as a list, add each deserialized item to the list in a loop.

Example 1: Simple JSON data

For the following JSON data:

<code>{"some":"thing1"}
{"some":"thing2"}
{"some":"thing3"}</code>

The following code demonstrates the deserialization process:

<code class="language-csharp">var json = "{\"some\":\"thing1\"}\r\n{\"some\":\"thing2\"}\r\n{\"some\":\"thing3\"}";
var jsonReader = new JsonTextReader(new StringReader(json))
{
    SupportMultipleContent = true
};

var jsonSerializer = new JsonSerializer();
var fooList = new List<Foo>();

while (jsonReader.Read())
{
    fooList.Add(jsonSerializer.Deserialize<Foo>(jsonReader));
}</code>

Example 2: Complex JSON data

For more complex JSON data:

<code>{"kind": "person", "fullName": "John Doe", "age": 22, "gender": "Male", "citiesLived": [{ "place": "Seattle", "numberOfYears": 5}, {"place": "Stockholm", "numberOfYears": 6}]}
{"kind": "person", "fullName": "Jane Austen", "age": 24, "gender": "Female", "citiesLived": [{"place": "Los Angeles", "numberOfYears": 2}, {"place": "Tokyo", "numberOfYears": 2}]}</code>

Create a Person POCO class and deserialize using the same method as Example 1.

It is important to note that this technology also supports comma-delimited JSON entries using Json.Net 10.0.4 and higher.

The above is the detailed content of How to Deserialize Line-Delimited JSON in C# using JSON.NET?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn