using FastJSON; 
 | 
using System; 
 | 
using System.Collections; 
 | 
using QimenCloud.Api; 
 | 
using Top.Api; 
 | 
using Top.Api.Parser; 
 | 
  
 | 
namespace QimenCloud.Api.Parser 
 | 
{ 
 | 
    public class QimenCloudSimplifyJsonParser<T> : QimenCloudJsonParser<T> where T : QimenCloudResponse 
 | 
    { 
 | 
        public override T Parse(string body) 
 | 
        { 
 | 
            T rsp = null; 
 | 
  
 | 
            IDictionary rootJson = JSON.Parse(body) as IDictionary; 
 | 
            if (rootJson != null) 
 | 
            { 
 | 
                IDictionary data = rootJson; 
 | 
                if (rootJson.Contains(Constants.QIMEN_CLOUD_ERROR_RESPONSE)) 
 | 
                { 
 | 
                    data = rootJson[Constants.QIMEN_CLOUD_ERROR_RESPONSE] as IDictionary; 
 | 
                } 
 | 
  
 | 
                if (data != null) 
 | 
                { 
 | 
                    ITopReader reader = new TopSimplifyJsonReader(data); 
 | 
                    rsp = (T)FromJson(reader, typeof(T)); 
 | 
                } 
 | 
            } 
 | 
  
 | 
            if (rsp == null) 
 | 
            { 
 | 
                rsp = Activator.CreateInstance<T>(); 
 | 
            } 
 | 
  
 | 
            if (rsp != null) 
 | 
            { 
 | 
                rsp.Body = body; 
 | 
            } 
 | 
  
 | 
            return rsp; 
 | 
        } 
 | 
    } 
 | 
} 
 |