我无法将google-api-services-admin-directory Organization
转换为JSONArray,因为会引发以下异常:
异常消息:字符38缺少值
我有以下代码:
Get user = directoryService.users().get("[email protected]");
User domainUserObj = user.execute();
logger.warning("Organizations "+domainUserObj.getOrganizations());
JSONArray userOrgJsonArr = new JSONArray(domainUserObj.getOrganizations().toString());
logger.warning("Organizations-JsonArr "+userOrgJsonArr);
我从API这样获得数据
组织[{title = Dev,primary = true,customType =,department = R&D,
description = Permanant,costCenter = Cost Test 12}]
我使用的JAR版本是google-api-services-admin-directory-directory_v1-rev72-1.22.0.jar
完整的异常堆栈跟踪
2018年7月26日7:57:52 com.company.project.ApiTestServelet doGet
警告:组织[{title = Dev,primary = true,customType =,department = R&D,description = Permanant,costCenter = Cost Test 12}]
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler
警告:异常消息:字符38缺少值2018年7月26日晚上7:57:52 com.company.project.utility.ErrorHandler errorHandler
警告:类ApiTestServelet中的错误2018年7月26日7:57:52 PM
com.company.project.utility.ErrorHandler errorHandler警告:
org.json.JSONTokener.syntaxError(JSONTokener.java:410)2018年7月26日
下午7:57:52 com.company.project.utility.ErrorHandler errorHandler
警告:org.json.JSONTokener.nextValue(JSONTokener.java:369)7月
26,2018 7:57:52 PM com.company.project.utility.ErrorHandler
errorHandler警告:
org.json.JSONObject。(JSONObject.java:205)2018年7月26日7:57:52
PM com.company.project.utility.ErrorHandler errorHandler警告:
org.json.JSONTokener.nextValue(JSONTokener.java:344)2018年7月26日
下午7:57:52 com.company.project.utility.ErrorHandler errorHandler
警告:org.json.JSONArray。(JSONArray.java:125)2018年7月26日
下午7:57:52 com.company.project.utility.ErrorHandler errorHandler
警告:org.json.JSONArray。(JSONArray.java:157)2018年7月26日
下午7:57:52 com.company.project.utility.ErrorHandler errorHandler
警告:
com.company.project.ApiTestServelet.doGet(ApiTestServelet.java:122)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)7月26日,
2018 7:57:52 PM com.company.project.utility.ErrorHandler errorHandler
警告:
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)7月26日,
2018 7:57:52 PM com.company.project.utility.ErrorHandler errorHandler
警告:
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1166)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
com.company.project.filter.XSSFilter.doFilter(XSSFilter.java:69)7月
26,2018 7:57:52 PM com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:72)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:134)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:48)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
com.google.appengine.tools.development.DevAppServerRequestLogFilter.doFilter(DevAppServerRequestLogFilter.java:44)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:95)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
com.google.appengine.tools.development.JettyContainerService $ ApiProxyHandler.handle(JettyContainerService.java:508)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.Server.handle(Server.java:326)2018年7月26日7:57:52
PM com.company.project.utility.ErrorHandler errorHandler警告:
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.HttpConnection $ RequestHandler.headerComplete(HttpConnection.java:923)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)7月26日,
2018 7:57:52 PM com.company.project.utility.ErrorHandler errorHandler
警告:
org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)7月
26,2018 7:57:52 PM com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)7月
26,2018 7:57:52 PM com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
2018年7月26日7:57:52 com.company.project.utility.ErrorHandler
errorHandler警告:
org.mortbay.thread.QueuedThreadPool $ PoolThread.run(QueuedThreadPool.java:582)
最佳答案
我找到了一个解决方案,即使用com.google.api.client.util.ArrayMap
迭代数据。
但是我不明白为什么customType
从API变成空的。
ArrayList orgArrList = (java.util.ArrayList)domainUserObj.getOrganizations();
for(int i = 0 ; i < orgArrList.size(); i++) {
System.out.println("For getOrganizations ::"+orgArrList.get(i));
ArrayMap<String,String> orgMapArr = (ArrayMap<String, String>)
orgArrList.get(i);
System.out.println("ArrayMap-UserOrganization ::"+orgMapArr);
for(int index=0; index < orgMapArr.size();index++) {
try {
System.out.println(orgMapArr.getKey(index) + " "
+ orgMapArr.getValue(index));
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
输出:
对于getOrganizations ::: {title = Dev,primary = true,customType =,
部门=研发,描述=永久,costCenter =成本测试12}
ArrayMap-UserOrganization :: {title = Dev,primary = true,customType =,
部门=研发,描述=永久,costCenter =成本测试12}
title Dev java.lang.Boolean不能强制转换为java.lang.String
customType部门研发说明永久成本中心成本测试
12