using nlib_ns::msgpack::JsonReader;
using nlib_ns::msgpack::JsonWriter;
using nlib_ns::msgpack::MpObject;
const char jsontext[] =
"{ \"item\": ["
"{\"itemCode\":91, \"itemName\" : \"ramen with salt based soup\", \"itemPrice\":300},"
"{\"itemCode\":94, \"itemName\" : \"ramen with miso based soup\", \"itemPrice\":290}, "
"{\"itemCode\":95, \"itemName\" : \"ramen with a pork bone broth\", \"itemPrice\":320} "
"] } ";
bool ReadModifyWriteJson() {
MpObject obj;
if (JsonReader::ReadEx(&obj, jsontext) != 0) return false;
MpObject* price;
int val;
MpObject* items = obj.GetMapItem("item");
if (!items) return false;
MpObject* salt = items->GetArrayItem(0);
if (!salt) return false;
price = salt->GetMapItem("itemPrice");
if (!price) return false;
if (0 != price->Unbox(&val)) return false;
val += 500;
if (0 != price->Box(val)) return false;
MpObject* miso = items->GetArrayItem(1);
if (!miso) return false;
price = miso->GetMapItem("itemPrice");
if (!price) return false;
if (0 != price->Unbox(&val)) return false;
val += 500;
price->Box(val);
MpObject* pork = items->GetArrayItem(2);
if (!pork) return false;
price = pork->GetMapItem("itemPrice");
if (!price) return false;
if (0 != price->Unbox(&val)) return false;
val += 500;
*price = val;
char str[1024];
return true;
}
bool SampleMain(int, char**) { return ReadModifyWriteJson(); }
NLIB_MAINFUNC