Alon Shmiel Alon Shmiel - 4 months ago 7
JSON Question

How to get some values from a JSON string in C#?

I have a string and I want to get some values from it.

My strings seem like:

string1:

"{\r\n \"id\": \"100000280905615\",
\r\n \"name\": \"Jerard Jones\",
\r\n \"first_name\": \"Jerard\",
\r\n \"last_name\": \"Jones\",
\r\n \"link\": \"https://www.facebook.com/Jerard.Jones\",
\r\n \"username\": \"Jerard.Jones\",
\r\n \"gender\": \"female\",
\r\n \"locale\": \"en_US\"\r\n}"


string2:

"{\r\n \"id\": \"100000390001929\",
\r\n \"name\": \"\\u05d1\\u05d2\\u05e8\\u15dc\\u25d9 \\u05d1\\u05e8\\u05d5\\u05e9\",
\r\n \"first_name\": \"\\u05d4\\u05d2\\u05e7\\u02dc\\u05d9\",
\r\n \"last_name\": \"\\u05d1\\u05e8\\u05d5\\u05e9\",
\r\n \"link\": "https://www.facebook.com/people/\\u05d2\\u05d1\\u05e@\\u05dc\\u05d9-\\u05d1\\u05e8\\u05d4\\u05e9/100000390001929\",
\r\n \"gender\": \"female\",
\r\n \"locale\": \"he_IL\"\r\n}"


Unfortunately, there is a situation that a string will be by the same concept, but without some parameters:

string3:

"{\r\n \"id\": \"100000390001929\",
\r\n \"last_name\": \"\\u05d1\\u05e8\\u05d5\\u05e9\",
\r\n \"gender\": \"female\",
\r\n \"locale\": \"he_IL\"\r\n}"


How can I get the values of:
id
,
first_name
,
last_name
,
gender
,
locale
?

Any help appreciated!

Answer

Your strings are JSON formatted, so you will need to parse it into a object. For that you can use JSON.NET.

Here is an example on how to parse a JSON string into a dynamic object:

string source = "{\r\n   \"id\": \"100000280905615\", \r\n \"name\": \"Jerard Jones\",  \r\n   \"first_name\": \"Jerard\", \r\n   \"last_name\": \"Jones\", \r\n   \"link\": \"https://www.facebook.com/Jerard.Jones\", \r\n   \"username\": \"Jerard.Jones\", \r\n   \"gender\": \"female\", \r\n   \"locale\": \"en_US\"\r\n}";
dynamic data = JObject.Parse(source);
Console.WriteLine(data.id);
Console.WriteLine(data.first_name);
Console.WriteLine(data.last_name);
Console.WriteLine(data.gender);
Console.WriteLine(data.locale);

Happy coding!