Hi,
when I try to convert this json:
{"job":{"submitTime":1526542607961,"startTime":1526542616091,"finishTime":1526542638046,"id":"job_1526459673820_0015","name":"oozie:launcher:T=shell:W=ec-coresyf_dcs-optical-bathymetry_OpticalBathymetry-ACRI:A=T2PUSHRESULTS:ID=0000002-180516103505431-oozie-oozi-W","queue":"default","user":"oozie","state":"SUCCEEDED","mapsTotal":1,"mapsCompleted":1,"reducesTotal":0,"reducesCompleted":0,"uberized":false,"diagnostics":"","avgMapTime":19108,"avgReduceTime":0,"avgShuffleTime":0,"avgMergeTime":0,"failedReduceAttempts":0,"killedReduceAttempts":0,"successfulReduceAttempts":0,"failedMapAttempts":0,"killedMapAttempts":0,"successfulMapAttempts":1}}
all unix timestamps are converted badly
failedMapAttempts:0
failedReduceAttempts:0
finishTime:2147483647
id:job_1526459673820_0015
killedMapAttempts:0
killedReduceAttempts:0
mapsCompleted:1
mapsTotal:1
name:oozie:launcher:T=shell:W=ec-coresyf_dcs-optical-bathymetry_OpticalBathymetry-ACRI:A=T2PUSHRESULTS:ID=0000002-180516103505431-oozie-oozi-W
reducesCompleted:0
reducesTotal:0
startTime:2147483647
state:SUCCEEDED
submitTime:2147483647
successfulMapAttempts:1
successfulReduceAttempts:0
void testConvert(){
std::string JSON{"{\"job\":{\"submitTime\":1526542607961,\"startTime\":1526542616091,\"finishTime\":1526542638046,\"id\":\"job_1526459673820_0015\",\"name\":\"oozie:launcher:T=shell:W=ec-coresyf_dcs-optical-bathymetry_OpticalBathymetry-ACRI:A=T2PUSHRESULTS:ID=0000002-180516103505431-oozie-oozi-W\",\"queue\":\"default\",\"user\":\"oozie\",\"state\":\"SUCCEEDED\",\"mapsTotal\":1,\"mapsCompleted\":1,\"reducesTotal\":0,\"reducesCompleted\":0,\"uberized\":false,\"diagnostics\":\"\",\"avgMapTime\":19108,\"avgReduceTime\":0,\"avgShuffleTime\":0,\"avgMergeTime\":0,\"failedReduceAttempts\":0,\"killedReduceAttempts\":0,\"successfulReduceAttempts\":0,\"failedMapAttempts\":0,\"killedMapAttempts\":0,\"successfulMapAttempts\":1}}"};
JsonBox::Value jStatus;
jStatus.loadFromString(JSON);
JsonBox::Value v = jStatus["job"];
std::cout << "v[\"submitTime\"]: " << v["submitTime"] << " - getToString():" << v["submitTime"].getToString() << " - getDouble(): " << v["submitTime"].getDouble() << " - getFloat(): " << v["submitTime"].getFloat() << " - getType(): " << v["submitTime"].getType() << "\n";
std::cout<< jStatus;
}
Result:
v["submitTime"]: 2147483647 - getToString():2147483647 - getDouble(): 2.14748e+09 - getFloat(): 2.14748e+09 - getType(): 1
{
"job" : {
"avgMapTime" : 19108,
"avgMergeTime" : 0,
"avgReduceTime" : 0,
"avgShuffleTime" : 0,
"diagnostics" : "",
"failedMapAttempts" : 0,
"failedReduceAttempts" : 0,
"finishTime" : 2147483647,
"id" : "job_1526459673820_0015",
"killedMapAttempts" : 0,
"killedReduceAttempts" : 0,
"mapsCompleted" : 1,
"mapsTotal" : 1,
"name" : "oozie:launcher:T=shell:W=ec-coresyf_dcs-optical-bathymetry_OpticalBathymetry-ACRI:A=T2PUSHRESULTS:ID=0000002-180516103505431-oozie-oozi-W",
"queue" : "default",
"reducesCompleted" : 0,
"reducesTotal" : 0,
"startTime" : 2147483647,
"state" : "SUCCEEDED",
"submitTime" : 2147483647,
"successfulMapAttempts" : 1,
"successfulReduceAttempts" : 0,
"uberized" : false,
"user" : "oozie"
}
}
The timestamps are in milliseconds and i can't change the json