ios reports code

starting to merge iOS reports code.
this `row["foo"]["bar"]` approach is fairly brittle. The moment `row["foo"]` is null, null pointer exception is thrown. Not ideal at all. The idea of *Json objects is that they are in the format of what the server sends.

Why is it being constructed here manually form the dynamic JSON? Unless there is a valid reason, it should be done like everywhere else, the `JsonConvert.DeserializeObject<ReportProjectJson>(respData)`.