zoukankan      html  css  js  c++  java
  • 71、salesforce的JSON方法

    List<Merchandise__c> merchandise = [select Id,Name,Price__c,Quantity__c from Merchandise__c limit 1];
    String goodsToJson = JSON.serialize(merchandise);//通过serialize方法序列化成JSON内容
    String goodsToJsonPretty = JSON.serializePretty(merchandise);//通过serializePretty方法序列化成JSON内容,以精美的输出格式输出
    
    //接上面Serialize的Sample,用于将JSON内容反序列化成Apex的Object对象
    List<Merchandise__c> merchandise2 = (List<Merchandise__c>)JSON.deserialize(goodsToJson, List<Merchandise__c>.class);
    for(Merchandise__c item : merchandise2){
        if(item.Name != null){
            System.debug(item.Name);
        }
    }
    
    //此方法用于将指定的JSON内容反序列化成基本数据类型的集合,如果不是基本数据类型,则在反序列化时报异常
    String jsonList = '[{"2":"object2","1":"object1"}]';
    List<Object> listJson = (List<Object>)JSON.deserializeUntyped(jsonList);
    for(Object listItem : listJson){
        if(listItem instanceof Map<String,Object>){
            System.debug('通过json 的反序列化(Map)' + (Map<String,Object>)listItem);
        }else{
            System.debug('通过json 的反序列化' + listItem);
        }
    }
    
    //此类包含的方法用来通过标准的JSON编码将object对象序列化成JSON内容,方法主要作用为将各种类型的值写入
    //JSON content中
    JSONGenerator jsonGenerator = JSON.createGenerator(true);
    jsonGenerator.writeStartArray();
    jsonGenerator.writeStartObject();
    jsonGenerator.writeBooleanField('isStatus', true);
    jsonGenerator.writeEndObject();
    jsonGenerator.writeEndArray();
    jsonGenerator.close();
    System.debug(jsonGenerator.getAsString());
    
    //JSONParser 用来解析一个调用了外部服务器的JSON格式的返回的响应内容,例如WEB service callout的json格式
    String JSONContent = '{"firstName":"John"}';
    JSONParser parser = JSON.createParser(JSONContent);
    //Advance to the next token
    while(parser.nextToken()!=null){
        System.debug('Current token: ' + parser.getCurrentToken());
    }
    
    
    String JSONContent1 = '{"isActive":true}';
    JSONParser parser1 = JSON.createParser(JSONContent1);
    //Advance to the start object marker
    parser1.nextToken();
    //Advance to the next value
    parser1.nextValue();
    //Get the Boolean value.
    Boolean isAcive1 = parser1.getBooleanValue();
    System.debug(parser1.nextToken());
    System.debug(parser1.nextValue());
    System.debug(isAcive1);

  • 相关阅读:
    实验四Web服务器2
    发际线与我作队团队作业(五):冲刺总结1
    读书笔记
    socket3
    使用CAS来实现个单例模式
    基于无锁的C#并发队列实现
    C#3.0中的“多重继承”
    对并发/并行编程的总结
    谈谈多线程编程(二) 不变对象
    谈谈多线程编程(一) 安全性策略
  • 原文地址:https://www.cnblogs.com/weizhen/p/6472648.html
Copyright © 2011-2022 走看看