如何在apex中序列化Json字符串
我需要将这个json字符串解析为值 “开始”:{“日期时间”:“2013-02-02T15:00:00+05:30”},“结束”:{“日期时间”:“2013-02-02T16:00:00+05:30”} 问题是我在apex(salesforce)中使用JSONParser。 我的班级是:如何在apex中序列化Json字符串,json,salesforce,apex-code,visualforce,Json,Salesforce,Apex Code,Visualforce,我需要将这个json字符串解析为值 “开始”:{“日期时间”:“2013-02-02T15:00:00+05:30”},“结束”:{“日期时间”:“2013-02-02T16:00:00+05:30”} 问题是我在apex(salesforce)中使用JSONParser。 我的班级是: public class wrapGoogleData{ public string summary{get;set;} public string id{get;set;} pub
public class wrapGoogleData{
public string summary{get;set;}
public string id{get;set;}
public string status;
public creator creator;
public start start;
public wrapGoogleData(string entnm,string ezid,string sta, creator c,start s){
summary= entnm;
id= ezid;
status = sta;
creator = c;
start = s;
}
}
public class creator{
public string email;
public string displayName;
public string self;
}
public class start{
public string datetimew;
}
除了上面字符串中的datetime之外,我可以从中获取所有数据。因为datetime在apex中是一个保留关键字,所以我无法在我的类中将变量名指定为datetime。
任何建议
Json解析器代码:
JSONParser parser = JSON.createParser(jsonData );
while (parser.nextToken() != null) {
// Start at the array of invoices.
if (parser.getCurrentToken() == JSONToken.START_ARRAY) {
while (parser.nextToken() != null) {
// Advance to the start object marker to
// find next invoice statement object.
if (parser.getCurrentToken() == JSONToken.START_OBJECT) {
// Read entire invoice object, including its array of line items.
wrapGoogleData inv = (wrapGoogleData)parser.readValueAs(wrapGoogleData.class);
String s = JSON.serialize(inv);
system.debug('Serialized invoice: ' + s);
// Skip the child start array and start object markers.
//parser.skipChildren();
lstwrap.put(inv.id,inv);
}
}
}
}
使用string.replace()函数并将名为dateTime的键替换为dateTime\uux之类的键,然后您可以使用Json进行解析。如果您已经在heruko平台上使用Json-to-apex convertor应用程序将Json转换为apex,则可以反序列化
上面的链接指向一个将Json转换为apex类的应用程序,然后您可以使用Json.serialize将Json解析为apex类结构。使用string.replace()函数并将名为dateTime的键替换为dateTime_uux,然后您可以使用Json进行解析。如果您已经在heruko平台上使用Json-to-apex convertor应用程序将Json转换为apex,则可以进行反序列化
上面的链接指向一个将Json转换为apex类的应用程序,然后您可以使用Json.serialize将Json解析为apex类结构。类似于Kumar的答案,但不使用外部应用程序 改变你的
start
课程是正确的想法
public class start{
public string datetimew;
}
现在,只需在通过反序列化程序运行JSON之前解析它
string newjsondata = jsonData.replace('"dateTime"','"datetimew"');
JSONParser parser = JSON.createParser(newjsondata);
while (parser.nextToken() != null) {
...
}
与Kumar的答案类似,但没有使用外部应用程序 改变你的
start
课程是正确的想法
public class start{
public string datetimew;
}
现在,只需在通过反序列化程序运行JSON之前解析它
string newjsondata = jsonData.replace('"dateTime"','"datetimew"');
JSONParser parser = JSON.createParser(newjsondata);
while (parser.nextToken() != null) {
...
}
请发布使用JSONParserPosted的APEX代码json解析器代码。请发布尝试序列化的json。请发布使用JSONParserPosted的APEX代码json解析器代码。请发布尝试序列化的json