Parse a string array in json response [closed]
up vote
-3
down vote
favorite
I have to accept the json response in below format which can have many "fields" in the string array. What would be the simplest way to parse this in a loop where I can extract "fieldvalues" and do some operations on them?
"fields":
[
"/field1/field1value/field2/field2value/field3/field3value",
"/field1/field1value/field2/field2value/field3/field3value"
]
c# .net json json.net
closed as unclear what you're asking by Ahmed Abdelhameed, Camilo Terevinto, Dour High Arch, user6655984, Tetsuya Yamamoto Nov 12 at 3:06
Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
add a comment |
up vote
-3
down vote
favorite
I have to accept the json response in below format which can have many "fields" in the string array. What would be the simplest way to parse this in a loop where I can extract "fieldvalues" and do some operations on them?
"fields":
[
"/field1/field1value/field2/field2value/field3/field3value",
"/field1/field1value/field2/field2value/field3/field3value"
]
c# .net json json.net
closed as unclear what you're asking by Ahmed Abdelhameed, Camilo Terevinto, Dour High Arch, user6655984, Tetsuya Yamamoto Nov 12 at 3:06
Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
What is your problem? Reading the json as an array with two strings or processing the content of these two strings? As usual a piece of code with your attempt to solve the problem is the best way to explain the problem
– Steve
Nov 11 at 23:37
If you mean "parsing JSON": Don't do it, Json.NET does this for you! If you mean "parse a string in an array" then this question is not related to JSON at all.
– Olivier Jacot-Descombes
Nov 11 at 23:46
@Steve I'll try to ask this better, it's both. My usual approach is receive the response as JObject and then do $"json["fields"]" to get the string, but in this case that'll give me a huge string. I looked up JArray.Parse, but couldn't make that work
– user1097128
Nov 11 at 23:55
add a comment |
up vote
-3
down vote
favorite
up vote
-3
down vote
favorite
I have to accept the json response in below format which can have many "fields" in the string array. What would be the simplest way to parse this in a loop where I can extract "fieldvalues" and do some operations on them?
"fields":
[
"/field1/field1value/field2/field2value/field3/field3value",
"/field1/field1value/field2/field2value/field3/field3value"
]
c# .net json json.net
I have to accept the json response in below format which can have many "fields" in the string array. What would be the simplest way to parse this in a loop where I can extract "fieldvalues" and do some operations on them?
"fields":
[
"/field1/field1value/field2/field2value/field3/field3value",
"/field1/field1value/field2/field2value/field3/field3value"
]
c# .net json json.net
c# .net json json.net
asked Nov 11 at 23:34
user1097128
289
289
closed as unclear what you're asking by Ahmed Abdelhameed, Camilo Terevinto, Dour High Arch, user6655984, Tetsuya Yamamoto Nov 12 at 3:06
Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
closed as unclear what you're asking by Ahmed Abdelhameed, Camilo Terevinto, Dour High Arch, user6655984, Tetsuya Yamamoto Nov 12 at 3:06
Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
What is your problem? Reading the json as an array with two strings or processing the content of these two strings? As usual a piece of code with your attempt to solve the problem is the best way to explain the problem
– Steve
Nov 11 at 23:37
If you mean "parsing JSON": Don't do it, Json.NET does this for you! If you mean "parse a string in an array" then this question is not related to JSON at all.
– Olivier Jacot-Descombes
Nov 11 at 23:46
@Steve I'll try to ask this better, it's both. My usual approach is receive the response as JObject and then do $"json["fields"]" to get the string, but in this case that'll give me a huge string. I looked up JArray.Parse, but couldn't make that work
– user1097128
Nov 11 at 23:55
add a comment |
What is your problem? Reading the json as an array with two strings or processing the content of these two strings? As usual a piece of code with your attempt to solve the problem is the best way to explain the problem
– Steve
Nov 11 at 23:37
If you mean "parsing JSON": Don't do it, Json.NET does this for you! If you mean "parse a string in an array" then this question is not related to JSON at all.
– Olivier Jacot-Descombes
Nov 11 at 23:46
@Steve I'll try to ask this better, it's both. My usual approach is receive the response as JObject and then do $"json["fields"]" to get the string, but in this case that'll give me a huge string. I looked up JArray.Parse, but couldn't make that work
– user1097128
Nov 11 at 23:55
What is your problem? Reading the json as an array with two strings or processing the content of these two strings? As usual a piece of code with your attempt to solve the problem is the best way to explain the problem
– Steve
Nov 11 at 23:37
What is your problem? Reading the json as an array with two strings or processing the content of these two strings? As usual a piece of code with your attempt to solve the problem is the best way to explain the problem
– Steve
Nov 11 at 23:37
If you mean "parsing JSON": Don't do it, Json.NET does this for you! If you mean "parse a string in an array" then this question is not related to JSON at all.
– Olivier Jacot-Descombes
Nov 11 at 23:46
If you mean "parsing JSON": Don't do it, Json.NET does this for you! If you mean "parse a string in an array" then this question is not related to JSON at all.
– Olivier Jacot-Descombes
Nov 11 at 23:46
@Steve I'll try to ask this better, it's both. My usual approach is receive the response as JObject and then do $"json["fields"]" to get the string, but in this case that'll give me a huge string. I looked up JArray.Parse, but couldn't make that work
– user1097128
Nov 11 at 23:55
@Steve I'll try to ask this better, it's both. My usual approach is receive the response as JObject and then do $"json["fields"]" to get the string, but in this case that'll give me a huge string. I looked up JArray.Parse, but couldn't make that work
– user1097128
Nov 11 at 23:55
add a comment |
2 Answers
2
active
oldest
votes
up vote
1
down vote
accepted
If you just need to parse the JSON and iterate over the strings in the fields
array, you can do that like this:
JObject obj = JObject.Parse(json);
foreach (var path in obj["fields"].Values<string>())
Console.WriteLine(path);
If you need to break down the strings into name-value pairs, you can split on /
and loop over the parts like this (inside the previous loop):
string parts = path.Split('/');
for (var i = 1; i < parts.Length; i += 2)
var name = parts[i];
var value = (i + 1 < parts.Length) ? parts[i + 1] : null;
Console.WriteLine(name + ": " + value);
See fiddle here: https://dotnetfiddle.net/TupvAu
Thank you! This is really helpful, I was looking for something like Values function.
– user1097128
Nov 12 at 2:02
add a comment |
up vote
2
down vote
You can parse that Json and obtain the single lines of data in this way
// As an example for your input data.....
string json = ""fields":["/field1/field1value/field2/field2value/field3/field3value","/field1/field1value/field2/field2value/field3/field3value"]";
// Json.NET JObject.Parse
var lines = JObject.Parse(json);
// Remove comment with LinqPad
// lines.GetType().Dump();
// Not really needed to explicitly use the Properties method...
foreach (var x in lines.Properties())
// Remove comment with LinqPad
// x.GetType().Dump();
foreach (var k in x.Value)
// Remove comment with LinqPad
// k.GetType().Dump();
string dataLine = k.Value<string>();
Console.WriteLine(dataLine);
I suggest to try this code with LinqPad using the Dump method on the variables lines, x and k to understand the inner structure of that JObject returned by Parse.
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
If you just need to parse the JSON and iterate over the strings in the fields
array, you can do that like this:
JObject obj = JObject.Parse(json);
foreach (var path in obj["fields"].Values<string>())
Console.WriteLine(path);
If you need to break down the strings into name-value pairs, you can split on /
and loop over the parts like this (inside the previous loop):
string parts = path.Split('/');
for (var i = 1; i < parts.Length; i += 2)
var name = parts[i];
var value = (i + 1 < parts.Length) ? parts[i + 1] : null;
Console.WriteLine(name + ": " + value);
See fiddle here: https://dotnetfiddle.net/TupvAu
Thank you! This is really helpful, I was looking for something like Values function.
– user1097128
Nov 12 at 2:02
add a comment |
up vote
1
down vote
accepted
If you just need to parse the JSON and iterate over the strings in the fields
array, you can do that like this:
JObject obj = JObject.Parse(json);
foreach (var path in obj["fields"].Values<string>())
Console.WriteLine(path);
If you need to break down the strings into name-value pairs, you can split on /
and loop over the parts like this (inside the previous loop):
string parts = path.Split('/');
for (var i = 1; i < parts.Length; i += 2)
var name = parts[i];
var value = (i + 1 < parts.Length) ? parts[i + 1] : null;
Console.WriteLine(name + ": " + value);
See fiddle here: https://dotnetfiddle.net/TupvAu
Thank you! This is really helpful, I was looking for something like Values function.
– user1097128
Nov 12 at 2:02
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
If you just need to parse the JSON and iterate over the strings in the fields
array, you can do that like this:
JObject obj = JObject.Parse(json);
foreach (var path in obj["fields"].Values<string>())
Console.WriteLine(path);
If you need to break down the strings into name-value pairs, you can split on /
and loop over the parts like this (inside the previous loop):
string parts = path.Split('/');
for (var i = 1; i < parts.Length; i += 2)
var name = parts[i];
var value = (i + 1 < parts.Length) ? parts[i + 1] : null;
Console.WriteLine(name + ": " + value);
See fiddle here: https://dotnetfiddle.net/TupvAu
If you just need to parse the JSON and iterate over the strings in the fields
array, you can do that like this:
JObject obj = JObject.Parse(json);
foreach (var path in obj["fields"].Values<string>())
Console.WriteLine(path);
If you need to break down the strings into name-value pairs, you can split on /
and loop over the parts like this (inside the previous loop):
string parts = path.Split('/');
for (var i = 1; i < parts.Length; i += 2)
var name = parts[i];
var value = (i + 1 < parts.Length) ? parts[i + 1] : null;
Console.WriteLine(name + ": " + value);
See fiddle here: https://dotnetfiddle.net/TupvAu
answered Nov 12 at 1:47
Brian Rogers
73.3k17184199
73.3k17184199
Thank you! This is really helpful, I was looking for something like Values function.
– user1097128
Nov 12 at 2:02
add a comment |
Thank you! This is really helpful, I was looking for something like Values function.
– user1097128
Nov 12 at 2:02
Thank you! This is really helpful, I was looking for something like Values function.
– user1097128
Nov 12 at 2:02
Thank you! This is really helpful, I was looking for something like Values function.
– user1097128
Nov 12 at 2:02
add a comment |
up vote
2
down vote
You can parse that Json and obtain the single lines of data in this way
// As an example for your input data.....
string json = ""fields":["/field1/field1value/field2/field2value/field3/field3value","/field1/field1value/field2/field2value/field3/field3value"]";
// Json.NET JObject.Parse
var lines = JObject.Parse(json);
// Remove comment with LinqPad
// lines.GetType().Dump();
// Not really needed to explicitly use the Properties method...
foreach (var x in lines.Properties())
// Remove comment with LinqPad
// x.GetType().Dump();
foreach (var k in x.Value)
// Remove comment with LinqPad
// k.GetType().Dump();
string dataLine = k.Value<string>();
Console.WriteLine(dataLine);
I suggest to try this code with LinqPad using the Dump method on the variables lines, x and k to understand the inner structure of that JObject returned by Parse.
add a comment |
up vote
2
down vote
You can parse that Json and obtain the single lines of data in this way
// As an example for your input data.....
string json = ""fields":["/field1/field1value/field2/field2value/field3/field3value","/field1/field1value/field2/field2value/field3/field3value"]";
// Json.NET JObject.Parse
var lines = JObject.Parse(json);
// Remove comment with LinqPad
// lines.GetType().Dump();
// Not really needed to explicitly use the Properties method...
foreach (var x in lines.Properties())
// Remove comment with LinqPad
// x.GetType().Dump();
foreach (var k in x.Value)
// Remove comment with LinqPad
// k.GetType().Dump();
string dataLine = k.Value<string>();
Console.WriteLine(dataLine);
I suggest to try this code with LinqPad using the Dump method on the variables lines, x and k to understand the inner structure of that JObject returned by Parse.
add a comment |
up vote
2
down vote
up vote
2
down vote
You can parse that Json and obtain the single lines of data in this way
// As an example for your input data.....
string json = ""fields":["/field1/field1value/field2/field2value/field3/field3value","/field1/field1value/field2/field2value/field3/field3value"]";
// Json.NET JObject.Parse
var lines = JObject.Parse(json);
// Remove comment with LinqPad
// lines.GetType().Dump();
// Not really needed to explicitly use the Properties method...
foreach (var x in lines.Properties())
// Remove comment with LinqPad
// x.GetType().Dump();
foreach (var k in x.Value)
// Remove comment with LinqPad
// k.GetType().Dump();
string dataLine = k.Value<string>();
Console.WriteLine(dataLine);
I suggest to try this code with LinqPad using the Dump method on the variables lines, x and k to understand the inner structure of that JObject returned by Parse.
You can parse that Json and obtain the single lines of data in this way
// As an example for your input data.....
string json = ""fields":["/field1/field1value/field2/field2value/field3/field3value","/field1/field1value/field2/field2value/field3/field3value"]";
// Json.NET JObject.Parse
var lines = JObject.Parse(json);
// Remove comment with LinqPad
// lines.GetType().Dump();
// Not really needed to explicitly use the Properties method...
foreach (var x in lines.Properties())
// Remove comment with LinqPad
// x.GetType().Dump();
foreach (var k in x.Value)
// Remove comment with LinqPad
// k.GetType().Dump();
string dataLine = k.Value<string>();
Console.WriteLine(dataLine);
I suggest to try this code with LinqPad using the Dump method on the variables lines, x and k to understand the inner structure of that JObject returned by Parse.
edited Nov 12 at 0:06
answered Nov 12 at 0:00
Steve
178k16152216
178k16152216
add a comment |
add a comment |
What is your problem? Reading the json as an array with two strings or processing the content of these two strings? As usual a piece of code with your attempt to solve the problem is the best way to explain the problem
– Steve
Nov 11 at 23:37
If you mean "parsing JSON": Don't do it, Json.NET does this for you! If you mean "parse a string in an array" then this question is not related to JSON at all.
– Olivier Jacot-Descombes
Nov 11 at 23:46
@Steve I'll try to ask this better, it's both. My usual approach is receive the response as JObject and then do $"json["fields"]" to get the string, but in this case that'll give me a huge string. I looked up JArray.Parse, but couldn't make that work
– user1097128
Nov 11 at 23:55