www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Example of parse whole json answer.

reply "Nicolas" <1990nicolas gmail.com> writes:
I have a json string saved in a file ( example of json tweeter 
answer: 
https://dev.twitter.com/docs/api/1.1/get/statuses/user_timeline 
). I am trying to read the whole json answer and print specific 
data ("created_at", "retweet_count", ..) . I am new at D 
Programming language and i was wondering if someone can help me 
or post some example that show how to parse json strings using 
std.json library. Thanks in advance.
Apr 24 2014
parent "Craig Dillabaugh" <cdillaba cg.scs.carleton.ca> writes:
On Thursday, 24 April 2014 at 12:17:42 UTC, Nicolas wrote:
 I have a json string saved in a file ( example of json tweeter 
 answer: 
 https://dev.twitter.com/docs/api/1.1/get/statuses/user_timeline 
 ). I am trying to read the whole json answer and print specific 
 data ("created_at", "retweet_count", ..) . I am new at D 
 Programming language and i was wondering if someone can help me 
 or post some example that show how to parse json strings using 
 std.json library. Thanks in advance.
Here is something to get you started. The initial version of this code was from Ali Cehreli, I can't remember what modifications are mine, or if this is all straight form Ali. If you intend to do any serious work with Json, I highly recommend you check out Vibe.d (www.vibed.org) - more stuff to learn but its JSON capabilities are awesome compared to what std.json gives you. import std.stdio; import std.json; import std.conv; import std.file; /** Ali's example. */ struct Employee { string firstName; string lastName; } void readEmployees( string employee_json_string ) { JSONValue[string] document = parseJSON(employee_json_string).object; JSONValue[] employees = document["employees"].array; foreach (employeeJson; employees) { JSONValue[string] employee = employeeJson.object; string firstName = employee["firstName"].str; string lastName = employee["lastName"].str; auto e = Employee(firstName, lastName); writeln("Constructed: ", e); } } void main() { // Assumes UTF-8 file auto content = `{ "employees": [ { "firstName":"Walter" , "lastName":"Bright" }, { "firstName":"Andrei" , "lastName":"Alexandrescu" }, { "firstName":"Celine" , "lastName":"Dion" } ] }`; readEmployees( content ); //Or to read the same thing from a file readEmployees( readText( "employees.json" ) ); }
Apr 24 2014