0

I'm using the ExportAPI from MailChimp. It sends back a "root"-less Json string like so:

["Email Address", "First Name", "Last Name"]
["jeff@mydomain.com", "Jeff", "Johnson"]
["tubbs@mydomain.com", "Tubbs", "McGraw"]

No brackets, nothing- just a couple of arrays. Loading it into a JArray only picks up the first object:

JArray jsonArray = new JArray.Parse(jsonResponse);
Console.WriteLine(jsonArray);

//Outputs:
//Email Address
//First Name
//Last Name

I'm hoping to copy the contents of the string into a database and need to access the response with LINQ. Any suggestions as to the correct way to work with a Json Object like I've shown above (using Json.net or otherwise?)

2 Answers2

1

Pad the string with a root element, just add '[' and ']'?

Jodes
  • 14,118
  • 26
  • 97
  • 156
0

This behavior is actually completely on purpose as mentioned in the docs. The reasoning is that a full dump of a list's data can easily be way too large to consistently fit it in memory and parse it. As such, and given the return format, you're expected to use a newline as the delimiter (or read it off the wire that way), parse each object individually, and then do whatever you need with them.

I am not familiar with doing that in C#/Linq, but the PHP example on the docs page does exactly that.

jesse
  • 470
  • 2
  • 6