[Purdue-pm] reading JSON with different programming languages

derrick derrick at csociety.org
Mon Apr 28 10:44:05 PDT 2014


the json is valid so part you can read it in part 1. part 2 is to update 
some values in the file and write the data back to disk.

On 04/28/2014 01:39 PM, Bradley Andersen wrote:
> maybe i am missing something, but, according to http://jsonlint.com/,
> http://www.csociety.org/~kearneyd/tmp/purduepm_json_challenge_1.json is
> valid json ...
>
>
> On Mon, Apr 28, 2014 at 1:35 PM, derrick <derrick at csociety.org> wrote:
>
>> Wow, I think I really messed this one up!
>>
>> I was working on the first part of the challenge problem this weekend and
>> had a huge brain fart. I need your help to getting this sample json file
>> cleaned up.
>>
>> In our last meeting we learned about the JSON file format. I created the
>> sample json file I wanted to use for the first part of the challenge, but I
>> accidentally mixed up some of values while I was writing the file. To make
>> things worst, my favorite text editor mysteriously now opens json files in
>> read only mode, so I can't just go in and fix it by hand (ugh, technology).
>>
>> I uploaded the file here:
>> http://www.csociety.org/~kearneyd/tmp/purduepm_json_challenge_1.json
>>
>> While I sort things out with my system, if you have a bit of extra time,
>> can you write a program that will do the following:
>>
>> 1) Read and Parse the JSON file.
>>
>> Read the json file into memory and parse it into data structures that best
>> fit the programming language you are using. There are 6 data types you need
>> to worry about:
>>
>> Primitive Types:
>> * null
>> * booleans
>> * strings
>> * numbers
>>
>> Structured Types:
>> * arrays
>> * objects
>>
>> More information about the json file format can be found here:
>> http://json.org/
>>
>> The file represents a dictionary, or hash table, or associative array.
>>
>> There is probably a library available in your programming language, you
>> can use to quickly read and parse the file. The json.org website has a
>> list of some libraries for popular programming languages.
>>
>> After parsing the file into your language's data structures, you should
>> print the values stored in the data structures to stdout or another file to
>> make sure you are reading the data properly. don't just print the file
>> after reading it.
>>
>>
>> 2) Fix the JSON file and write it back to disk.
>>
>> Here is where it gets tricky. Even though the json file was syntactically
>> correct, I made some mistakes in the data that is stored in it. Here is a
>> summary of what I wanted for each key in the dictionary :
>>
>> * null_value should be a json NULL or None value, not a string.
>> * boolean_true should be a json true value, not false
>> * boolean_false should be a json false value, not true
>> * integer_number should be the integer representation of its current
>> value, not the floating point representation (ie 3)
>> * number_examples -> "not a number" should not even be in the dictionary,
>> lets remove it.
>> * in "array", the string "value5" should read "value4" to match "key4"
>>
>> Can you write a program to make these specific changes? Don't forget to
>> comment your code. If you find an interesting way of addressing elements
>> inside of the structure, please highlight that in your code. For example,
>> how would you find the value for "key4" in the file? If there were multiple
>> dictionary keys named "key4" in the file, how could you make sure you were
>> addressing the correct one?
>>
>> The data in the outputted file should look something like like this:
>>
>> {
>>      "null_value": null,
>>      "boolean_true": true,
>>      "boolean_false": false,
>>      "string": "this is my string.",
>>      "integer_number": 3,
>>      "number_examples": {
>>          "positive integer": 9,
>>          "negative integer": -1,
>>          "float": 2.3,
>>          "positive_exponent": 4.35e+58,
>>          "negative_exponent": 4.3508e-93
>>      },
>>      "array": [true,null,["value3"],{"key4":"value4"}]
>> }
>>
>>
>> Note that the order of the keys (null_value, boolean_true, boolean_false,
>> ...) does not matter since the pairs of a json object are unordered.
>>
>>
>> We'll discuss how to perform these actions in the different programming
>> languages people chose to use in the next meeting on May 20, 2014.
>>
>> Thanks,
>>
>> dsk
>>
>>
>>
>> On 04/15/2014 02:30 PM, Mark Senn wrote:
>>
>>> Derrick Kearney is going to prepare some JSON and the following people
>>> will talk and/or write about how they read it with the following
>>> programming languages before or at the Purdue Perl Mongers meeting on
>>> May 20, 2014.  Send email to markiest at purdue.edu (remove "iest" from
>>> the email address) with any corrections or additions to the below list.
>>>
>>> LANGUAGE       WHO
>>> Mathematica    Mark Senn
>>> Perl           Dave Jacoby
>>> PHP            Chris Orr
>>> pro            Mark Senn
>>> Python         Joe Kline
>>> Ruby           Rick Westerman
>>>
>>> Mark Senn, Systems Programmer, Engineering Computer Network, Purdue
>>> University
>>>
>>
>> _______________________________________________
>> Purdue-pm mailing list
>> Purdue-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/purdue-pm
>>
>



More information about the Purdue-pm mailing list