java jsonarray的json问题遇到以下问题怎么解决

17:03 提问
在java中使用json遇到的问题
关于在jsonArray数组中的jsonObect 问题,json格式:
"op": "add",
"field": "fld",
"value": "20"
"field": "fldu",
"value": "z"
JSONObject jsonObj = new JSONObject();
JSONArray jsonArray = new JSONArray();
jsonObj .put("operation", "add");
jsonObj .put("array",jsonArray.put( jsonObj.put("field", "fld_name")));
但是结果报错。
按赞数排序
你想要生成一个JSON字符串:
"op": "add",
"field": "fld",
"value": "20"
"field": "fldu",
"value": "z"
这样写就对了:
JSONObject jsonObj = new JSONObject();
jsonObj .put("op", "add");
JSONArray jsonArray = new JSONArray();
JSONObject json1 = new JSONObject();
json1.put("field", "fld");
json1.put("value", "20");
jsonArray.put(json1);
JSONObject json2 = new JSONObject();
json2.put("field", "fldu");
json2.put("value", "z");
jsonArray.put(json2);
jsonObj .put("array", jsonArray);
还有写代码时,注意点,你看你这行jsonObj .put("operation", "add");明显就有问题,可key应该是op吧,呵呵
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐今天看啥 热点:
主要是解决JSON因Hibernate映射生成的集合的转化出现的死循环问题。
这个方法很重要
public String ajaxJsonByObjectDirecdt(Object obj, String[] filterNames){
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setIgnoreDefaultExcludes(false);
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
//防止自包含
if(filterNames != null){
//这里是核心,过滤掉不想使用的属性
jsonConfig .setExcludes(filterNames) ;
JSONObject jsonObj = JSONObject.fromObject(obj, jsonConfig);
//ajax()方法主要功能是将数据通过输出流输出到Client
return ajax(jsonObj.toString(), "text/html");
对于参数,String[] filterNames,这个字符串数组中存放的是变量的名字(句柄),而不是变量的类型。
public String getUserLoginInfo(){
User user = (User)getSession().getAttribute(USER);
//要过滤的属性集合
String[] filterNames =
new String[]{"role", "operatingHistories", "helpInfoBoards", "replyInfos",
"helpInfos", "credits", "users", "user",
"helpInfoBoard"};
return ajaxJsonByObjectDirecdt(user, filterNames);
其中User类含有以下属性:
1 public class User implements java.io.Serializable {
private String studentN
private String fixedT
private Timestamp registerD
private String imgU
private Timestamp totalOnlineD
private Set&OperatingHistory& operatingHistories = new HashSet&OperatingHistory&(
private Set&HelpInfoBoard& helpInfoBoards = new HashSet&HelpInfoBoard&(0);
private Set&ReplyInfo& replyInfos = new HashSet&ReplyInfo&(0);
private Set&HelpInfo& helpInfos = new HashSet&HelpInfo&(0);
private Set&Credit& credits = new HashSet&Credit&(0);
//more methods.
两端代码参照下,就知道怎么使用了。
后台异常信息:
com.opensymphony.xwork2.config.ConfigurationManager
2 Detected container provider org.apache.struts2.convention.ClasspathConfigurationProvider@67b0eb2c needs to be reloaded.
Reloading all providers.
com.opensymphony.xwork2.config.ConfigurationManager
4 Detected package provider org.apache.struts2.convention.ClasspathConfigurationProvider@67b0eb2c needs to be reloaded.
Reloading all providers.
com.opensymphony.xwork2.config.ConfigurationManager
6 Detected package provider org.apache.struts2.convention.ClasspathConfigurationProvider@31af5c3 needs to be reloaded.
Reloading all providers.
com.opensymphony.xwork2.config.ConfigurationManager
8 Detected package provider org.apache.struts2.convention.ClasspathPackageProvider@5efcd6cc needs to be reloaded.
Reloading all providers.
com.opensymphony.xwork2.config.providers.XmlConfigurationProvider
10 Parsing configuration file [struts-default.xml]
com.opensymphony.xwork2.config.providers.XmlConfigurationProvider
12 Parsing configuration file [struts-plugin.xml]
com.opensymphony.xwork2.config.providers.XmlConfigurationProvider
14 Parsing configuration file [struts.xml]
com.opensymphony.xwork2.config.impl.DefaultConfiguration
16 Overriding property struts.i18n.reload - old value: false new value: true
com.opensymphony.xwork2.config.impl.DefaultConfiguration
18 Overriding property struts.configuration.xml.reload - old value: false new value: true
org.apache.struts2.config.BeanSelectionProvider
20 Loading global messages from i18n
org.apache.struts2.spring.StrutsSpringObjectFactory
22 Initializing Struts-Spring integration...
com.opensymphony.xwork2.spring.SpringObjectFactory
24 Setting autowire strategy to name
org.apache.struts2.spring.StrutsSpringObjectFactory
26 ... initialized Struts-Spring integration successfully
01:07:12 Test: Reloading class 'student.life.support.platform.action.BaseAction'.
28 hql:from student.life.support.platform.model.User as model where model.username = ?
29 Hibernate:
user0_.id as id62_,
user0_.address as address62_,
user0_.age as age62_,
user0_.answer as answer62_,
user0_.email as email62_,
user0_.fixed_telephone as fixed6_62_,
user0_.img_url as img7_62_,
user0_.nickname as nickname62_,
user0_.password as password62_,
user0_.phonenumber as phonenu10_62_,
user0_.qq as qq62_,
user0_.question as question62_,
user0_.register_date as register13_62_,
user0_.role_id as role18_62_,
user0_.sex as sex62_,
user0_.student_num as student15_62_,
user0_.total_online_date as total16_62_,
user0_.username as username62_
studentlifesupportplatform.user user0_
user0_.username=?
net.sf.json.JSONObject
54 Property 'handler' has no read method. SKIPPED
55 Hibernate:
role0_.id as id61_0_,
role0_.role_permissions as role2_61_0_,
role0_.role_type as role3_61_0_
studentlifesupportplatform.role role0_
role0_.id=?
64 Hibernate:
users0_.role_id as role18_1_,
users0_.id as id1_,
users0_.id as id62_0_,
users0_.address as address62_0_,
users0_.age as age62_0_,
users0_.answer as answer62_0_,
users0_.email as email62_0_,
users0_.fixed_telephone as fixed6_62_0_,
users0_.img_url as img7_62_0_,
users0_.nickname as nickname62_0_,
users0_.password as password62_0_,
users0_.phonenumber as phonenu10_62_0_,
users0_.qq as qq62_0_,
users0_.question as question62_0_,
users0_.register_date as register13_62_0_,
users0_.role_id as role18_62_0_,
users0_.sex as sex62_0_,
users0_.student_num as student15_62_0_,
users0_.total_online_date as total16_62_0_,
users0_.username as username62_0_
studentlifesupportplatform.user users0_
users0_.role_id=?
net.sf.json.JSONObject
91 Property 'transactionTimeout' has no read method. SKIPPED
net.sf.json.JSONObject
93 Property 'URL' has no read method. SKIPPED
net.sf.json.JSONObject
95 Property 'array' has no read method. SKIPPED
net.sf.json.JSONObject
97 Property 'asciiStream' has no read method. SKIPPED
net.sf.json.JSONObject
99 Property 'bigDecimal' has no read method. SKIPPED
net.sf.json.JSONObject
101 Property 'binaryStream' has no read method. SKIPPED
net.sf.json.JSONObject
103 Property 'blob' has no read method. SKIPPED
net.sf.json.JSONObject
105 Property 'boolean' has no read method. SKIPPED
net.sf.json.JSONObject
107 Property 'byte' has no read method. SKIPPED
net.sf.json.JSONObject
109 Property 'bytes' has no read method. SKIPPED
net.sf.json.JSONObject
111 Property 'characterStream' has no read method. SKIPPED
net.sf.json.JSONObject
113 Property 'clob' has no read method. SKIPPED
freemarker.runtime
115 Method public java.lang.String org.apache.commons.lang.exception.NestableRuntimeException.getMessage(int) threw an exception when invoked on net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
116 Method public java.lang.String org.apache.commons.lang.exception.NestableRuntimeException.getMessage(int) threw an exception when invoked on net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
117 The problematic instruction:
118 ----------
119 ==& ${msg[0]} [on line 68, column 29 in org/apache/struts2/dispatcher/error.ftl]
120 ----------
122 Java backtrace for programmers:
123 ----------
124 freemarker.template.TemplateModelException: Method public java.lang.String org.apache.commons.lang.exception.NestableRuntimeException.getMessage(int) threw an exception when invoked on net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:130)
at freemarker.ext.beans.SimpleMethodModel.get(SimpleMethodModel.java:138)
at freemarker.core.DynamicKeyName.dealWithNumericalKey(DynamicKeyName.java:111)
at freemarker.core.DynamicKeyName._getAsTemplateModel(DynamicKeyName.java:90)
at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
at freemarker.core.Expression.getStringValue(Expression.java:93)
at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
at freemarker.core.Environment.visit(Environment.java:210)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:210)
at freemarker.core.IfBlock.accept(IfBlock.java:82)
at freemarker.core.Environment.visit(Environment.java:210)
at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:179)
at freemarker.core.Environment.visit(Environment.java:417)
at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)
at freemarker.core.Environment.visit(Environment.java:210)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:210)
at freemarker.core.IfBlock.accept(IfBlock.java:82)
at freemarker.core.Environment.visit(Environment.java:210)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:210)
at freemarker.core.Environment.process(Environment.java:190)
at freemarker.template.Template.process(Template.java:237)
at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:797)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:519)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:123)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.__invoke(StandardHostValve.java:171)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
175 Caused by: java.lang.NullPointerException
at freemarker.ext.beans.SimpleMemberModel.unwrapArguments(SimpleMemberModel.java:85)
at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:106)
... 49 more
1:07:12 org.apache.catalina.core.StandardWrapperValve invoke
180 严重: Servlet.service() for servlet [default] in context with path [/StudentLifeSupportPlatformSystem] threw exception
181 java.lang.IllegalStateException: Cannot call sendError() after the response has been committed
at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:451)
at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:801)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:519)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:123)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.__invoke(StandardHostValve.java:171)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
欢迎讨论交流,&我的主页:http://www.cnblogs.com/GDUT/
& & & & & & & & & & 我的邮箱:zone.technology.
相关搜索:
相关阅读:
相关频道:
&&&&&&&&&&&&&&&&
Java编程最近更新2016年1月 Java大版内专家分月排行榜第二2015年12月 Java大版内专家分月排行榜第二2015年8月 Java大版内专家分月排行榜第二2015年3月 Java大版内专家分月排行榜第二2015年1月 Java大版内专家分月排行榜第二2014年12月 Java大版内专家分月排行榜第二2014年11月 Java大版内专家分月排行榜第二2014年6月 Java大版内专家分月排行榜第二2014年4月 Java大版内专家分月排行榜第二2014年1月 Java大版内专家分月排行榜第二2013年11月 Java大版内专家分月排行榜第二
2015年9月 Java大版内专家分月排行榜第三2015年6月 Java大版内专家分月排行榜第三2015年5月 Java大版内专家分月排行榜第三2015年2月 Java大版内专家分月排行榜第三2014年3月 Java大版内专家分月排行榜第三2013年12月 Java大版内专家分月排行榜第三
2015年5月 Java大版内专家分月排行榜第二2013年5月 Java大版内专家分月排行榜第二
2011年5月 Java大版内专家分月排行榜第三2011年1月 Java大版内专家分月排行榜第三
2015年5月 Java大版内专家分月排行榜第二2013年5月 Java大版内专家分月排行榜第二
2011年5月 Java大版内专家分月排行榜第三2011年1月 Java大版内专家分月排行榜第三
2015年5月 Java大版内专家分月排行榜第二2013年5月 Java大版内专家分月排行榜第二
2011年5月 Java大版内专家分月排行榜第三2011年1月 Java大版内专家分月排行榜第三
2015年5月 Java大版内专家分月排行榜第二2013年5月 Java大版内专家分月排行榜第二
2011年5月 Java大版内专家分月排行榜第三2011年1月 Java大版内专家分月排行榜第三
2015年5月 Java大版内专家分月排行榜第二2013年5月 Java大版内专家分月排行榜第二
2011年5月 Java大版内专家分月排行榜第三2011年1月 Java大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)java的json问题遇到以下问题怎么解决_百度知道
java的json问题遇到以下问题怎么解决
我有更好的答案
以下问题???哪里
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 java json 乱码问题 的文章

 

随机推荐