PageRenderTime 65ms CodeModel.GetById 32ms RepoModel.GetById 1ms app.codeStats 0ms

/QingTingFanBianYi/src/com/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer.java

https://gitlab.com/qt-prometheus/qt-prometheus
Java | 649 lines | 629 code | 16 blank | 4 comment | 143 complexity | fa04bab83ba242be3ef9c3b579ffd7b8 MD5 | raw file
  1. package com.alibaba.fastjson.parser.deserializer;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONException;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.alibaba.fastjson.parser.DefaultJSONParser;
  6. import com.alibaba.fastjson.parser.DefaultJSONParser.ResolveTask;
  7. import com.alibaba.fastjson.parser.Feature;
  8. import com.alibaba.fastjson.parser.JSONLexer;
  9. import com.alibaba.fastjson.parser.JSONToken;
  10. import com.alibaba.fastjson.parser.ParseContext;
  11. import com.alibaba.fastjson.parser.ParserConfig;
  12. import com.alibaba.fastjson.serializer.FilterUtils;
  13. import com.alibaba.fastjson.util.DeserializeBeanInfo;
  14. import com.alibaba.fastjson.util.FieldInfo;
  15. import com.alibaba.fastjson.util.TypeUtils;
  16. import java.lang.reflect.Constructor;
  17. import java.lang.reflect.InvocationHandler;
  18. import java.lang.reflect.Method;
  19. import java.lang.reflect.Proxy;
  20. import java.lang.reflect.Type;
  21. import java.util.ArrayList;
  22. import java.util.HashMap;
  23. import java.util.IdentityHashMap;
  24. import java.util.Iterator;
  25. import java.util.List;
  26. import java.util.Map;
  27. import java.util.Map.Entry;
  28. import java.util.Set;
  29. public class JavaBeanDeserializer
  30. implements ObjectDeserializer
  31. {
  32. private DeserializeBeanInfo beanInfo;
  33. private final Class<?> clazz;
  34. private final Map<String, FieldDeserializer> feildDeserializerMap = new IdentityHashMap();
  35. private final List<FieldDeserializer> fieldDeserializers = new ArrayList();
  36. private final List<FieldDeserializer> sortedFieldDeserializers = new ArrayList();
  37. public JavaBeanDeserializer(ParserConfig paramParserConfig, Class<?> paramClass)
  38. {
  39. this(paramParserConfig, paramClass, paramClass);
  40. }
  41. public JavaBeanDeserializer(ParserConfig paramParserConfig, Class<?> paramClass, Type paramType)
  42. {
  43. this.clazz = paramClass;
  44. this.beanInfo = DeserializeBeanInfo.computeSetters(paramClass, paramType);
  45. paramType = this.beanInfo.getFieldList().iterator();
  46. while (paramType.hasNext())
  47. addFieldDeserializer(paramParserConfig, paramClass, (FieldInfo)paramType.next());
  48. paramParserConfig = this.beanInfo.getSortedFieldList().iterator();
  49. while (paramParserConfig.hasNext())
  50. {
  51. paramClass = (FieldInfo)paramParserConfig.next();
  52. paramClass = (FieldDeserializer)this.feildDeserializerMap.get(paramClass.getName().intern());
  53. this.sortedFieldDeserializers.add(paramClass);
  54. }
  55. }
  56. private void addFieldDeserializer(ParserConfig paramParserConfig, Class<?> paramClass, FieldInfo paramFieldInfo)
  57. {
  58. String str = paramFieldInfo.getName().intern();
  59. paramParserConfig = createFieldDeserializer(paramParserConfig, paramClass, paramFieldInfo);
  60. this.feildDeserializerMap.put(str, paramParserConfig);
  61. this.fieldDeserializers.add(paramParserConfig);
  62. }
  63. public FieldDeserializer createFieldDeserializer(ParserConfig paramParserConfig, Class<?> paramClass, FieldInfo paramFieldInfo)
  64. {
  65. return paramParserConfig.createFieldDeserializer(paramParserConfig, paramClass, paramFieldInfo);
  66. }
  67. public Object createInstance(DefaultJSONParser paramDefaultJSONParser, Type paramType)
  68. {
  69. Object localObject;
  70. if (((paramType instanceof Class)) && (this.clazz.isInterface()))
  71. {
  72. paramDefaultJSONParser = (Class)paramType;
  73. paramType = Thread.currentThread().getContextClassLoader();
  74. localObject = new JSONObject();
  75. return Proxy.newProxyInstance(paramType, new Class[] { paramDefaultJSONParser }, (InvocationHandler)localObject);
  76. }
  77. if (this.beanInfo.getDefaultConstructor() == null)
  78. return null;
  79. try
  80. {
  81. paramType = this.beanInfo.getDefaultConstructor();
  82. if (paramType.getParameterTypes().length == 0);
  83. for (paramType = paramType.newInstance(new Object[0]); paramDefaultJSONParser.isEnabled(Feature.InitStringFieldAsEmpty); paramType = paramType.newInstance(new Object[] { paramDefaultJSONParser.getContext().getObject() }))
  84. {
  85. paramDefaultJSONParser = this.beanInfo.getFieldList().iterator();
  86. while (true)
  87. {
  88. if (!paramDefaultJSONParser.hasNext())
  89. break label241;
  90. localObject = (FieldInfo)paramDefaultJSONParser.next();
  91. if (((FieldInfo)localObject).getFieldClass() == String.class)
  92. try
  93. {
  94. ((FieldInfo)localObject).set(paramType, "");
  95. }
  96. catch (Exception paramDefaultJSONParser)
  97. {
  98. throw new JSONException("create instance error, class " + this.clazz.getName(), paramDefaultJSONParser);
  99. }
  100. }
  101. }
  102. }
  103. catch (Exception paramDefaultJSONParser)
  104. {
  105. throw new JSONException("create instance error, class " + this.clazz.getName(), paramDefaultJSONParser);
  106. }
  107. label241: return paramType;
  108. }
  109. public <T> T deserialze(DefaultJSONParser paramDefaultJSONParser, Type paramType, Object paramObject)
  110. {
  111. return deserialze(paramDefaultJSONParser, paramType, paramObject, null);
  112. }
  113. public <T> T deserialze(DefaultJSONParser paramDefaultJSONParser, Type paramType, Object paramObject1, Object paramObject2)
  114. {
  115. JSONLexer localJSONLexer = paramDefaultJSONParser.getLexer();
  116. if (localJSONLexer.token() == 8)
  117. {
  118. localJSONLexer.nextToken(16);
  119. return null;
  120. }
  121. Object localObject1 = paramDefaultJSONParser.getContext();
  122. Object localObject5 = localObject1;
  123. if (paramObject2 != null)
  124. localObject5 = ((ParseContext)localObject1).getParentContext();
  125. Object localObject9 = null;
  126. Object localObject3 = null;
  127. Object localObject4 = null;
  128. Object localObject2 = localObject3;
  129. localObject1 = paramObject2;
  130. try
  131. {
  132. if (localJSONLexer.token() == 13)
  133. {
  134. localObject2 = localObject3;
  135. localObject1 = paramObject2;
  136. localJSONLexer.nextToken(16);
  137. paramObject1 = paramObject2;
  138. if (paramObject2 == null)
  139. {
  140. localObject2 = localObject3;
  141. localObject1 = paramObject2;
  142. paramObject1 = createInstance(paramDefaultJSONParser, paramType);
  143. }
  144. if (0 != 0)
  145. throw new NullPointerException();
  146. paramDefaultJSONParser.setContext((ParseContext)localObject5);
  147. return paramObject1;
  148. }
  149. localObject2 = localObject3;
  150. localObject1 = paramObject2;
  151. if (localJSONLexer.token() == 14)
  152. {
  153. localObject2 = localObject3;
  154. localObject1 = paramObject2;
  155. if (localJSONLexer.isEnabled(Feature.SupportArrayToBean))
  156. {
  157. localObject2 = localObject3;
  158. localObject1 = paramObject2;
  159. paramType = deserialzeArrayMapping(paramDefaultJSONParser, paramType, paramObject1, paramObject2);
  160. if (0 != 0)
  161. throw new NullPointerException();
  162. paramDefaultJSONParser.setContext((ParseContext)localObject5);
  163. return paramType;
  164. }
  165. }
  166. localObject2 = localObject3;
  167. localObject1 = paramObject2;
  168. if (localJSONLexer.token() == 12)
  169. break label382;
  170. localObject2 = localObject3;
  171. localObject1 = paramObject2;
  172. if (localJSONLexer.token() == 16)
  173. break label382;
  174. localObject2 = localObject3;
  175. localObject1 = paramObject2;
  176. paramType = new StringBuffer().append("syntax error, expect {, actual ").append(localJSONLexer.tokenName()).append(", pos ").append(localJSONLexer.pos());
  177. localObject2 = localObject3;
  178. localObject1 = paramObject2;
  179. if ((paramObject1 instanceof String))
  180. {
  181. localObject2 = localObject3;
  182. localObject1 = paramObject2;
  183. paramType.append(", fieldName ").append(paramObject1);
  184. }
  185. localObject2 = localObject3;
  186. localObject1 = paramObject2;
  187. throw new JSONException(paramType.toString());
  188. }
  189. finally
  190. {
  191. }
  192. if (localObject2 != null)
  193. localObject2.setObject(localObject1);
  194. paramDefaultJSONParser.setContext((ParseContext)localObject5);
  195. throw paramType;
  196. label382: localObject2 = localObject3;
  197. localObject1 = paramObject2;
  198. Object localObject8 = localObject4;
  199. Object localObject6 = localObject9;
  200. Object localObject7 = paramObject2;
  201. if (paramDefaultJSONParser.getResolveStatus() == 2)
  202. {
  203. localObject2 = localObject3;
  204. localObject1 = paramObject2;
  205. paramDefaultJSONParser.setResolveStatus(0);
  206. localObject7 = paramObject2;
  207. localObject6 = localObject9;
  208. localObject8 = localObject4;
  209. }
  210. paramObject2 = localObject8;
  211. localObject1 = localObject7;
  212. localObject2 = localObject6;
  213. while (true)
  214. {
  215. while (true)
  216. {
  217. label447: localObject3 = localObject1;
  218. try
  219. {
  220. localObject7 = localJSONLexer.scanSymbol(paramDefaultJSONParser.getSymbolTable());
  221. if (localObject7 == null)
  222. {
  223. localObject3 = localObject1;
  224. if (localJSONLexer.token() == 13)
  225. {
  226. localObject3 = localObject1;
  227. localJSONLexer.nextToken(16);
  228. localObject3 = localObject1;
  229. localObject4 = localObject2;
  230. }
  231. }
  232. while (true)
  233. {
  234. label506: localObject1 = localObject3;
  235. if (localObject3 != null)
  236. break label1663;
  237. if (paramObject2 != null)
  238. break label1522;
  239. localObject2 = localObject4;
  240. localObject1 = localObject3;
  241. paramObject2 = createInstance(paramDefaultJSONParser, paramType);
  242. paramType = (Type)localObject4;
  243. if (localObject4 == null)
  244. {
  245. localObject2 = localObject4;
  246. localObject1 = paramObject2;
  247. paramType = paramDefaultJSONParser.setContext((ParseContext)localObject5, paramObject2, paramObject1);
  248. }
  249. if (paramType != null)
  250. paramType.setObject(paramObject2);
  251. paramDefaultJSONParser.setContext((ParseContext)localObject5);
  252. return paramObject2;
  253. localObject3 = localObject1;
  254. if (localJSONLexer.token() == 16)
  255. {
  256. localObject3 = localObject1;
  257. if (paramDefaultJSONParser.isEnabled(Feature.AllowArbitraryCommas))
  258. break;
  259. }
  260. if ("$ref" == localObject7)
  261. {
  262. localObject3 = localObject1;
  263. localJSONLexer.nextTokenWithColon(4);
  264. localObject3 = localObject1;
  265. if (localJSONLexer.token() == 4)
  266. {
  267. localObject3 = localObject1;
  268. paramObject2 = localJSONLexer.stringVal();
  269. localObject3 = localObject1;
  270. if ("@".equals(paramObject2))
  271. {
  272. localObject3 = localObject1;
  273. localObject1 = ((ParseContext)localObject5).getObject();
  274. }
  275. while (true)
  276. {
  277. localObject3 = localObject1;
  278. localJSONLexer.nextToken(13);
  279. localObject3 = localObject1;
  280. if (localJSONLexer.token() == 13)
  281. break;
  282. throw new JSONException("illegal ref");
  283. localObject3 = localObject1;
  284. if ("..".equals(paramObject2))
  285. {
  286. localObject3 = localObject1;
  287. paramType = ((ParseContext)localObject5).getParentContext();
  288. localObject3 = localObject1;
  289. if (paramType.getObject() != null)
  290. {
  291. localObject3 = localObject1;
  292. localObject1 = paramType.getObject();
  293. }
  294. else
  295. {
  296. localObject3 = localObject1;
  297. paramDefaultJSONParser.addResolveTask(new DefaultJSONParser.ResolveTask(paramType, paramObject2));
  298. localObject3 = localObject1;
  299. paramDefaultJSONParser.setResolveStatus(1);
  300. }
  301. }
  302. else
  303. {
  304. localObject3 = localObject1;
  305. if ("$".equals(paramObject2))
  306. {
  307. for (paramType = (Type)localObject5; ; paramType = paramType.getParentContext())
  308. {
  309. localObject3 = localObject1;
  310. if (paramType.getParentContext() == null)
  311. break;
  312. localObject3 = localObject1;
  313. }
  314. localObject3 = localObject1;
  315. if (paramType.getObject() != null)
  316. {
  317. localObject3 = localObject1;
  318. localObject1 = paramType.getObject();
  319. }
  320. else
  321. {
  322. localObject3 = localObject1;
  323. paramDefaultJSONParser.addResolveTask(new DefaultJSONParser.ResolveTask(paramType, paramObject2));
  324. localObject3 = localObject1;
  325. paramDefaultJSONParser.setResolveStatus(1);
  326. }
  327. }
  328. else
  329. {
  330. localObject3 = localObject1;
  331. paramDefaultJSONParser.addResolveTask(new DefaultJSONParser.ResolveTask((ParseContext)localObject5, paramObject2));
  332. localObject3 = localObject1;
  333. paramDefaultJSONParser.setResolveStatus(1);
  334. }
  335. }
  336. }
  337. }
  338. throw new JSONException("illegal ref, " + JSONToken.name(localJSONLexer.token()));
  339. localObject3 = localObject1;
  340. localJSONLexer.nextToken(16);
  341. localObject3 = localObject1;
  342. paramDefaultJSONParser.setContext((ParseContext)localObject5, localObject1, paramObject1);
  343. if (localObject2 != null)
  344. localObject2.setObject(localObject1);
  345. paramDefaultJSONParser.setContext((ParseContext)localObject5);
  346. return localObject1;
  347. }
  348. localObject3 = localObject1;
  349. if (JSON.DEFAULT_TYPE_KEY != localObject7)
  350. break label1222;
  351. localObject3 = localObject1;
  352. localJSONLexer.nextTokenWithColon(4);
  353. localObject3 = localObject1;
  354. if (localJSONLexer.token() != 4)
  355. break label1207;
  356. localObject3 = localObject1;
  357. localObject4 = localJSONLexer.stringVal();
  358. localObject3 = localObject1;
  359. localJSONLexer.nextToken(16);
  360. localObject3 = localObject1;
  361. if (!(paramType instanceof Class))
  362. break label1156;
  363. localObject3 = localObject1;
  364. if (!((String)localObject4).equals(((Class)paramType).getName()))
  365. break label1156;
  366. localObject3 = localObject1;
  367. if (localJSONLexer.token() != 13)
  368. break;
  369. localObject3 = localObject1;
  370. localJSONLexer.nextToken();
  371. localObject4 = localObject2;
  372. localObject3 = localObject1;
  373. }
  374. label1156: localObject3 = localObject1;
  375. paramType = TypeUtils.loadClass((String)localObject4);
  376. localObject3 = localObject1;
  377. paramType = paramDefaultJSONParser.getConfig().getDeserializer(paramType).deserialze(paramDefaultJSONParser, paramType, paramObject1);
  378. if (localObject2 != null)
  379. localObject2.setObject(localObject1);
  380. paramDefaultJSONParser.setContext((ParseContext)localObject5);
  381. return paramType;
  382. label1207: throw new JSONException("syntax error");
  383. label1222: if ((localObject1 == null) && (paramObject2 == null))
  384. {
  385. localObject3 = localObject1;
  386. localObject4 = createInstance(paramDefaultJSONParser, paramType);
  387. if (localObject4 == null)
  388. {
  389. localObject3 = localObject4;
  390. paramObject2 = new HashMap(this.fieldDeserializers.size());
  391. label1271: localObject1 = localObject4;
  392. localObject6 = paramDefaultJSONParser.setContext((ParseContext)localObject5, localObject4, paramObject1);
  393. localObject3 = localObject4;
  394. localObject4 = localObject6;
  395. }
  396. }
  397. while (true)
  398. {
  399. localObject2 = localObject4;
  400. localObject1 = localObject3;
  401. if (!parseField(paramDefaultJSONParser, (String)localObject7, localObject3, paramType, paramObject2))
  402. {
  403. localObject2 = localObject4;
  404. localObject1 = localObject3;
  405. localObject8 = paramObject2;
  406. localObject6 = localObject4;
  407. localObject7 = localObject3;
  408. if (localJSONLexer.token() != 13)
  409. break;
  410. localObject2 = localObject4;
  411. localObject1 = localObject3;
  412. localJSONLexer.nextToken();
  413. break label506;
  414. }
  415. localObject2 = localObject4;
  416. localObject1 = localObject3;
  417. if (localJSONLexer.token() == 16)
  418. {
  419. localObject2 = localObject4;
  420. localObject1 = localObject3;
  421. break label447;
  422. }
  423. localObject2 = localObject4;
  424. localObject1 = localObject3;
  425. if (localJSONLexer.token() == 13)
  426. {
  427. localObject2 = localObject4;
  428. localObject1 = localObject3;
  429. localJSONLexer.nextToken(16);
  430. break label506;
  431. }
  432. localObject2 = localObject4;
  433. localObject1 = localObject3;
  434. if (localJSONLexer.token() != 18)
  435. {
  436. localObject2 = localObject4;
  437. localObject1 = localObject3;
  438. if (localJSONLexer.token() != 1)
  439. break label1851;
  440. }
  441. localObject2 = localObject4;
  442. throw new JSONException("syntax error, unexpect token " + JSONToken.name(localJSONLexer.token()));
  443. label1522: localObject2 = localObject4;
  444. localObject1 = localObject3;
  445. paramObject1 = this.beanInfo.getFieldList();
  446. localObject2 = localObject4;
  447. localObject1 = localObject3;
  448. int j = paramObject1.size();
  449. localObject2 = localObject4;
  450. localObject1 = localObject3;
  451. paramType = new Object[j];
  452. int i = 0;
  453. while (i < j)
  454. {
  455. localObject2 = localObject4;
  456. localObject1 = localObject3;
  457. paramType[i] = paramObject2.get(((FieldInfo)paramObject1.get(i)).getName());
  458. i += 1;
  459. }
  460. localObject2 = localObject4;
  461. localObject1 = localObject3;
  462. paramObject1 = this.beanInfo.getCreatorConstructor();
  463. if (paramObject1 != null)
  464. {
  465. localObject2 = localObject4;
  466. localObject1 = localObject3;
  467. }
  468. while (true)
  469. {
  470. try
  471. {
  472. paramType = this.beanInfo.getCreatorConstructor().newInstance(paramType);
  473. localObject1 = paramType;
  474. label1663: if (localObject4 != null)
  475. ((ParseContext)localObject4).setObject(localObject1);
  476. paramDefaultJSONParser.setContext((ParseContext)localObject5);
  477. return localObject1;
  478. }
  479. catch (Exception paramType)
  480. {
  481. localObject2 = localObject4;
  482. throw new JSONException("create instance error, " + this.beanInfo.getCreatorConstructor().toGenericString(), paramType);
  483. }
  484. localObject2 = localObject4;
  485. localObject1 = localObject3;
  486. paramObject1 = this.beanInfo.getFactoryMethod();
  487. localObject1 = localObject3;
  488. if (paramObject1 != null)
  489. {
  490. localObject2 = localObject4;
  491. localObject1 = localObject3;
  492. try
  493. {
  494. paramType = this.beanInfo.getFactoryMethod().invoke(null, paramType);
  495. }
  496. catch (Exception paramType)
  497. {
  498. localObject2 = localObject4;
  499. throw new JSONException("create factory method error, " + this.beanInfo.getFactoryMethod().toString(), paramType);
  500. }
  501. }
  502. }
  503. break label1271;
  504. localObject4 = localObject2;
  505. localObject3 = localObject1;
  506. }
  507. }
  508. finally
  509. {
  510. localObject1 = localObject3;
  511. }
  512. }
  513. break;
  514. label1851: localObject2 = localObject4;
  515. localObject1 = localObject3;
  516. }
  517. }
  518. public <T> T deserialzeArrayMapping(DefaultJSONParser paramDefaultJSONParser, Type paramType, Object paramObject1, Object paramObject2)
  519. {
  520. paramObject1 = paramDefaultJSONParser.getLexer();
  521. if (paramObject1.token() != 14)
  522. throw new JSONException("error");
  523. paramType = createInstance(paramDefaultJSONParser, paramType);
  524. int j = this.sortedFieldDeserializers.size();
  525. int i = 0;
  526. if (i < j)
  527. {
  528. char c;
  529. label68: Class localClass;
  530. if (i == j - 1)
  531. {
  532. c = ']';
  533. paramObject2 = (FieldDeserializer)this.sortedFieldDeserializers.get(i);
  534. localClass = paramObject2.getFieldClass();
  535. if (localClass != Integer.TYPE)
  536. break label129;
  537. paramObject2.setValue(paramType, paramObject1.scanInt(c));
  538. }
  539. label129: label272:
  540. do
  541. while (true)
  542. {
  543. i += 1;
  544. break;
  545. c = ',';
  546. break label68;
  547. if (localClass == String.class)
  548. {
  549. paramObject2.setValue(paramType, paramObject1.scanString(c));
  550. }
  551. else if (localClass == Long.TYPE)
  552. {
  553. paramObject2.setValue(paramType, paramObject1.scanLong(c));
  554. }
  555. else if (localClass.isEnum())
  556. {
  557. paramObject2.setValue(paramType, paramObject1.scanEnum(localClass, paramDefaultJSONParser.getSymbolTable(), c));
  558. }
  559. else
  560. {
  561. paramObject1.nextToken(14);
  562. paramObject2.setValue(paramType, paramDefaultJSONParser.parseObject(paramObject2.getFieldType()));
  563. if (c != ']')
  564. break label272;
  565. if (paramObject1.token() != 15)
  566. throw new JSONException("syntax error");
  567. paramObject1.nextToken(16);
  568. }
  569. }
  570. while ((c != ',') || (paramObject1.token() == 16));
  571. throw new JSONException("syntax error");
  572. }
  573. paramObject1.nextToken(16);
  574. return paramType;
  575. }
  576. public Class<?> getClazz()
  577. {
  578. return this.clazz;
  579. }
  580. public int getFastMatchToken()
  581. {
  582. return 12;
  583. }
  584. public Map<String, FieldDeserializer> getFieldDeserializerMap()
  585. {
  586. return this.feildDeserializerMap;
  587. }
  588. void parseExtra(DefaultJSONParser paramDefaultJSONParser, Object paramObject, String paramString)
  589. {
  590. Object localObject = paramDefaultJSONParser.getLexer();
  591. if (!((JSONLexer)localObject).isEnabled(Feature.IgnoreNotMatch))
  592. throw new JSONException("setter not found, class " + this.clazz.getName() + ", property " + paramString);
  593. ((JSONLexer)localObject).nextTokenWithColon();
  594. localObject = FilterUtils.getExtratype(paramDefaultJSONParser, paramObject, paramString);
  595. if (localObject == null);
  596. for (localObject = paramDefaultJSONParser.parse(); ; localObject = paramDefaultJSONParser.parseObject((Type)localObject))
  597. {
  598. FilterUtils.processExtra(paramDefaultJSONParser, paramObject, paramString, localObject);
  599. return;
  600. }
  601. }
  602. public boolean parseField(DefaultJSONParser paramDefaultJSONParser, String paramString, Object paramObject, Type paramType, Map<String, Object> paramMap)
  603. {
  604. JSONLexer localJSONLexer = paramDefaultJSONParser.getLexer();
  605. FieldDeserializer localFieldDeserializer = (FieldDeserializer)this.feildDeserializerMap.get(paramString);
  606. Object localObject = localFieldDeserializer;
  607. if (localFieldDeserializer == null)
  608. {
  609. Iterator localIterator = this.feildDeserializerMap.entrySet().iterator();
  610. do
  611. {
  612. localObject = localFieldDeserializer;
  613. if (!localIterator.hasNext())
  614. break;
  615. localObject = (Map.Entry)localIterator.next();
  616. }
  617. while (!((String)((Map.Entry)localObject).getKey()).equalsIgnoreCase(paramString));
  618. localObject = (FieldDeserializer)((Map.Entry)localObject).getValue();
  619. }
  620. if (localObject == null)
  621. {
  622. parseExtra(paramDefaultJSONParser, paramObject, paramString);
  623. return false;
  624. }
  625. localJSONLexer.nextTokenWithColon(((FieldDeserializer)localObject).getFastMatchToken());
  626. ((FieldDeserializer)localObject).parseField(paramDefaultJSONParser, paramObject, paramType, paramMap);
  627. return true;
  628. }
  629. }
  630. /* Location: C:\Users\User\dex2jar-2.0\dex\qting\classes-dex2jar.jar
  631. * Qualified Name: com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer
  632. * JD-Core Version: 0.6.2
  633. */