问题:如何区分属性“MonthQuota”和“Forecast”?
在我的真实程序中,我使用 JsonObject 类和动态 ProDataSet,它是一个递归解析程序。任何建议请考虑以上几点。
我正在尝试解析一个 JSON,其中包含一个带有数值数组的属性(“MonthQuota”)和另一个带有对象数组的第二个属性(“Forcast”)。
这是 JSON:
{
"ttSalesRep": [
{
"SalesRep": "BBB",
"RepName": "Brawn, Bubba B.",
"Region": "East",
"MonthQuota": [
1600,1648,1697,1748,1800,1854
],
"Forcast": [
{
"Month1": "Enero",
"Amont1": 111.1
},
{
"Month1": "Marzo",
"Amont1": 111.2
}
]
}
]
}
因为我必须以不同的方式解析这两个属性,所以我尝试使用 GetType 方法。但我对“MonthQuota”和“Forcast”属性有相同的结果:GetType = 5。 这是一个显示我的问题的小程序:
DEFINE VARIABLE myParser AS ObjectModelParser NO-UNDO.
DEFINE VARIABLE myConstruct AS JsonConstruct NO-UNDO.
DEFINE VARIABLE myJsonObj AS JsonObject NO-UNDO.
DEFINE VARIABLE myArray AS CHAR EXTENT NO-UNDO.
DEFINE VARIABLE my_JSON_File AS CHARACTER NO-UNDO.
my_JSON_File = "myJsonFile.json".
myParser = NEW ObjectModelParser().
myConstruct = myParser:ParseFile(my_JSON_File).
myJsonObj = CAST(myConstruct, JsonObject).
myArray = myJsonObj:GetJsonArray("ttSalesRep"):GetJsonObject(1):GetNames().
MESSAGE
myArray[4] "=" myJsonObj:GetJsonArray("ttSalesRep"):GetJsonObject(1):GetType(myArray[4]) SKIP
myArray[5] "=" myJsonObj:GetJsonArray("ttSalesRep"):GetJsonObject(1):GetType(myArray[5]) SKIP
VIEW-AS ALERT-BOX.