Twitter: @CEDriverWiz
The Parser Function is a giant Switch-Case statement.
//The current state of the State Machine Expecting parseState = startOfArray; /* Parses a JSon array of records of name value pairs */ BOOL ParseJsonString(char c) { switch (parseState) { case startOfArray: result = Expect(c); if (result) { //Start of array so no records yet. RecordNo = 0; output.println(F("\r\n1: Starting parse of array.")); } ... ... ... }
// Parser state machine states: enum Expecting { startOfArray, startOfRecord, startOfName, gettingName, nameValueSeparator, startOfValue, gettingValue, gettingEndOfValueORRecord, gotEndOfRecord, gettingRecordSeparator, done, error, gettingString, gettingBoolean, gettingInteger, gettingFloat, gettingNull }
A detailed description of the CEJSON JSON Parser.
On March 2 the pending merger of NXP Semiconductors N.V. and Freescale Semiconductor, Ltd was announced.
Version 1 AzMS Tables use an auto-incremented integer field as the primary key which is more compact than the GUID string used in version 2 AzMS tables.. The Azure Portal generates Version 2 tables which can be inefficient for resource limited embedded devices. This blog covers how to generate version 1 AzMS tables.
When an HTML POST/GET/PATCH/DELETE message is posted to an Azure Mobile Service Table, the message can be intercepted and modified. Also the response can also be intercepted and modified. This blog outlines how to do this.
C:\GIT\CEJSON\JSONParser.Desktop\Debug>JSONParser DELETE 24
C:\JSONParser.Compact2013>JSONParser PATCH 39 Value 55
C:\JSONParser.Compact2013>JSONParser POST Temperature 78
C:\JSONParser.Compact2013>JSONParser GET