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
Release: 2025-01-22 16:52:10
Original
589 people have browsed it

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>
Copy after login

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>
Copy after login

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>
Copy after login

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!

source:php.cn
Statement of this Website
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template