一、JSON建构有两种结构:
json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组2种结构,通过这两种结构可以表示各种复杂的结构
1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。在Java中就是一种Map结构。
2、数组:数组在js中是中括号“[]”扩起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。在Java中是一种list结构。
经过对象、数组2种结构就可以组合成复杂的数据结构了。
二、Json in Javascript
使用Json语法创建对象
var people = {"name":"jack","sex":"mail"};
可以通过这种语法创建json对象,用“{}”括起来,用“,”隔开key:value
使用Json语法创建数组
var arr =[value1,value2...];
一个包含多个people的数组 peoples = [{"name":"jack","sex":"mail"},
"name":"lily","sex":"femail"};
Json数组可以通过这种语法创建,用"[]"括起来,数组元素之间用“,”分隔开,下面是这种语法的示意图:
在使用Json格式字符串与服务器交互时候,可以利用Json扩展的方法将字符串转换成一个JavaScript对象,或者将一个对象转换成Json格式字符串。不过先要登录http://www.json.org下载Json2.js文件。引入该包后,js对象直接用toJSONString()装换为字符串格式,字符串可以用parseJSON()转换成js对象。
访问数据
只需用点号表示法来表示数组元素。所以,要想访问 上面peoples列表的第一个条目的名字,只需在 JavaScript 中使用下面这样的代码:
peoples[0].name
利用这样的语法,可以处理任何 JSON 格式的数据,而不需要使用任何额外的 JavaScript 工具包或 API。
修改数据
正如可以用点号和方括号访问数据,也可以按照同样的方式轻松地修改数据:
peoples[0].name = "Rachmaninov";
在将字符串转换为 JavaScript 对象之后,就可以像这样修改变量中的数据。
❷ java中json对象是如何创建或者转换出来的
JSONObject在JAVA中其实就相当于Map, 可以通过key取到值;
而JAVA对象,一般是JAVA中的版model或者domain 模型对象, 这种对象代表的是一个业务权的模型,是有明确的意义的, 包括里面的属性类型都是明确定义;
转换成对象之后,操作其中的值就可以用getter,setter方法明确指定,
一般其他人使用的时候也能知道里面有什么,而如果只有一个JSONObject, 使用的时候除了先在控制台输入里面的内容是不知道里面有什么的,
并不适合在JAVA方法中的数据传递使用
❸ java中如何将数据封装为JSON包
直接输出就可以了
String jsondata = "{'a':" + a + ",'b':" + b + ",'c':" + c + "}";
如果是字符串就加上单引号,如
String jsondata = "{'a':'" + a + "','b':'" + b + "','c':'" + c + "'}";
如果abc是数组
String jsondata = "{'a':[" + a[0] + "," + a[1] + "," + a[2] + "],'b':...}";
如果abc是对象就相对复杂一点
String jsondata = "{'a':{'a_paramStr':'" + a.paramStr + "','a_pramaInt'}:a.pramaInt},'b':...}";
当然,如果对象的成员变量很多,可以可以通过对象遍历的方式输出,还有包含子对象、子子对象的情况
总结如下
格式:{'数据名':数据值}
数据值为数字时,直接输出
数据值为字符串时,用单引号包含值,'数据值'
数据值为数组时,用中括号包含,[数据值1,数据值2,...]
数据值为对象时,用大括号包含,{'成员名1':成员数值1,'成员名2':{'成员2对象的成员1','成员2对象的成员1值'},...}
数据与数据之间用逗号隔开,以上
一句话,如果传送数据很简单可以自己输出;如果很复杂,乖乖用三方json包吧,我真不懂为什么抗拒别人做的车轮
❹ java鐨刯son闂棰橀亣鍒颁互涓嬮棶棰樻庝箞瑙e喅
鍐嶆潵璇磋存槸浠涔堣︾粏鐨勯棶棰樸傘傘傘傘傘傘傘
❺ 如何使用java创建json对象
使用ObjectMapper
writeValueAsString(object) 对象转换成String
readValue(jsonString, class); String转换成对象
❻ java如何返回json格式
publicstaticvoidreturnJson(HttpServletResponseresponse,CharSequencetext)
throwsException{
response.setContentType("application/json;charset=UTF-8");
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragrma","no-cache");
response.setDateHeader("Expires",0);
response.getWriter().write(text.toString());
}
其中text这个是JSONObject或者Map
response.setContentType("application/json;charset=UTF-8");这个表示以json格式返回
前台需要eval接收到的版数据,就是权json格式了
❼ java后台如何生成.json文件
如果用SpringMvc的话配置一下就可以了,默认返回json:
<bean
class="org.springframework.web.servlet.view.">
<property name="mediaTypes">
<map>
<entry key="html" value="text/html" />
<entry key="xml" value="application/xml" />
<entry key="json" value="application/json" />
</map>
</property>
<property name="viewResolvers">
<list>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/pages/" />
<property name="suffix" value=".jsp" />
<property name="order" value="0" />
</bean>
</list>
</property>
<property name="defaultViews">
<list>
<bean
class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
</list>
</property>
</bean>
❽ java如何创建Json文件
如果聊天数据的结构是固定的或变化不大的。
就直接“编排”json字符串。
为要输出的对象内增加一个String toJSON()方法
StringBuilder b=new StringBuilder();
b.append("{ name:\"");
b.append(username);
b.append("\"}");
依次类容推
return b.toString();
适合绝大多数情况。
补充:json是做交换格式,查询效率非常低,如果做存储的检索格式就误用了。
就是说“聊天信息的保存用json应该可以吧”还不如你之前的mysql数据库。
json用在客户端往服务端发送的通讯交换数据的格式上。服务端收到后转为数据库中或内存中存放。
❾ java 生成JSON 然后 在html页面 解析 然后 输出到页面!!!!在线等!!!
javascript能支持自的json格式是:
a、"{"name":"dd","age":"12"}";
b、"[{"name":"dd",“age\":"12"},{"name”:"kk","age":"20"}]";
在java中直接使用JSONObject类的fromObject即可把对象转换成json字符串
或者你直接把JAVA的字符串拼接成上面的格式,然後返回出去就行了,然後在ajax的回调函数中处理
页面的AJAX请求请参考下面的链接
http://..com/question/325897417.html