锘??xml version="1.0" encoding="utf-8" standalone="yes"?>av毛片在线免费看,国产伦理久久久久久妇女,精品资源在线http://www.aygfsteel.com/Good-Game/category/25648.htmlzh-cnMon, 08 Oct 2007 19:10:27 GMTMon, 08 Oct 2007 19:10:27 GMT60json 嫻嬭瘯http://www.aygfsteel.com/Good-Game/archive/2007/10/08/151071.htmlG_GG_GMon, 08 Oct 2007 07:08:00 GMThttp://www.aygfsteel.com/Good-Game/archive/2007/10/08/151071.htmlhttp://www.aygfsteel.com/Good-Game/comments/151071.htmlhttp://www.aygfsteel.com/Good-Game/archive/2007/10/08/151071.html#Feedback0http://www.aygfsteel.com/Good-Game/comments/commentRss/151071.htmlhttp://www.aygfsteel.com/Good-Game/services/trackbacks/151071.html 鍙傜収錛?/font>
聽聽聽 http://json-lib.sourceforge.net/usage.html

鍏?json <-> object
package聽test.json;

import聽java.util.ArrayList;
import聽java.util.HashMap;
import聽java.util.List;
import聽java.util.Map;

import聽org.apache.commons.beanutils.PropertyUtils;

import聽com.jjm.viewBean.reportTableBean;

import聽net.sf.json.JSONArray;
import聽net.sf.json.JSONFunction;
import聽net.sf.json.JSONObject;

import聽junit.framework.TestCase;

publicclass聽JsonTest聽extends聽TestCase聽{

//object聽to聽json聽************************************************************
聽聽聽聽publicvoid聽testList(){
聽聽聽聽聽聽聽聽
boolean[]聽boolArray聽=newboolean[]{true,false,true};聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽JSONArray聽jsonArray1聽
=聽JSONArray.fromObject(聽boolArray聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽System.out.println(聽jsonArray1聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
//聽prints聽[true,false,true]聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽List聽list聽
=new聽ArrayList();聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽list.add(聽
"first"聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽list.add(聽
"second"聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽JSONArray聽jsonArray2聽
=聽JSONArray.fromObject(聽list聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽System.out.println(聽jsonArray2聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
//聽prints聽["first","second"]聽聽

聽聽聽聽聽聽聽聽聽聽聽聽JSONArray聽jsonArray3聽
=聽JSONArray.fromObject(聽"['json','is','easy']"聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽System.out.println(聽jsonArray3聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
//聽prints聽["json","is","easy"]聽聽聽
聽聽聽聽}
聽聽聽聽
聽聽聽聽
publicvoid聽testMap(){
聽聽聽聽聽聽聽聽Map聽map聽
=new聽HashMap();聽聽聽
聽聽聽聽聽聽聽聽聽map.put(聽
"name",聽"json"聽);聽聽聽
聽聽聽聽聽聽聽聽聽map.put(聽
"bool",聽Boolean.TRUE聽);聽聽聽
聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽map.put(聽
"int",聽new聽Integer(1)聽);聽聽聽
聽聽聽聽聽聽聽聽聽map.put(聽
"arr",聽new聽String[]{"a","b"}聽);聽聽聽
聽聽聽聽聽聽聽聽聽map.put(聽
"func",聽"function(i){聽return聽this.arr[i];聽}"聽);聽聽聽
聽聽聽聽聽聽聽聽聽JSONObject聽json聽
=聽JSONObject.fromObject(聽map聽);聽聽聽
聽聽聽聽聽聽聽聽聽System.out.println(聽json聽);聽聽聽
聽聽聽聽聽聽聽聽聽
//{"func":function(i){聽return聽this.arr[i];聽},"arr":["a","b"],"int":1,"name":"json","bool":true}
聽聽聽聽}

聽聽聽聽
/**
聽聽聽聽聽*聽Bean.java聽
聽聽聽聽聽聽聽聽private聽String聽name聽=聽"json";聽聽聽
聽聽聽聽聽聽聽聽private聽int聽pojoId聽=聽1;聽聽聽
聽聽聽聽聽聽聽聽private聽char[]聽options聽=聽new聽char[]{'a','f'};聽聽聽
聽聽聽聽聽聽聽聽private聽String聽func1聽=聽"function(i){聽return聽this.options[i];聽}";聽聽聽
聽聽聽聽聽聽聽聽private聽JSONFunction聽func2聽=聽new聽JSONFunction(new聽String[]{"i"},"return聽this.options[i];");
聽聽聽聽
*/
聽聽聽聽聽
publicvoid聽testBean(){
聽聽聽聽聽聽聽聽聽JSONObject聽jsonObject聽
=聽JSONObject.fromObject(聽new聽JsonBean()聽);聽聽聽
聽聽聽聽聽聽聽聽聽System.out.println(聽jsonObject聽);聽聽聽
聽聽聽聽聽聽聽聽聽
//{"func1":function(i){聽return聽this.options[i];聽},"pojoId":1,"name":"json","options":["a","f"],"func2":function(i){聽return聽this.options[i];聽}}聽聽
聽聽聽聽聽}
聽聽聽聽聽
聽聽聽聽聽
/**
聽聽聽聽聽聽*聽private聽int聽row聽;
聽聽聽聽聽聽聽聽聽聽private聽int聽col聽;
聽聽聽聽聽聽聽聽聽聽private聽String聽value聽;
聽聽聽聽聽聽*
聽聽聽聽聽聽
*/
聽聽聽聽聽
publicvoid聽testBeans(){
聽聽聽聽聽聽聽聽聽List聽list聽
=new聽ArrayList();
聽聽聽聽聽聽聽聽聽JsonBean2聽jb1聽
=new聽JsonBean2();
聽聽聽聽聽聽聽聽聽jb1.setCol(
1);
聽聽聽聽聽聽聽聽聽jb1.setRow(
1);
聽聽聽聽聽聽聽聽聽jb1.setValue(
"xx");
聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽JsonBean2聽jb2聽
=new聽JsonBean2();
聽聽聽聽聽聽聽聽聽jb2.setCol(
2);
聽聽聽聽聽聽聽聽聽jb2.setRow(
2);
聽聽聽聽聽聽聽聽聽jb2.setValue(
"");
聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽list.add(jb1);
聽聽聽聽聽聽聽聽聽list.add(jb2);
聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽JSONArray聽ja聽
=聽JSONArray.fromObject(list);
聽聽聽聽聽聽聽聽聽System.out.println(聽ja.toString()聽);
聽聽聽聽聽聽聽聽聽
//[{"value":"xx","row":1,"col":1},{"value":"","row":2,"col":2}]
聽聽聽聽聽}
聽聽聽聽聽
聽聽聽聽聽

//聽聽聽聽json聽聽to聽object聽************************************************************聽聽聽聽聽
聽聽聽聽聽
聽聽聽聽聽
publicvoid聽testJsonBeanUtil()throws聽Exception{
聽聽聽聽聽聽聽聽聽聽聽聽聽String聽json聽
="{name=\"json\",bool:true,int:1,double:2.2,func:function(a){聽return聽a;聽},array:[1,2]}";聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽JSONObject聽jsonObject聽
=聽JSONObject.fromString(json);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽Object聽bean聽
=聽JSONObject.toBean(聽jsonObject聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽jsonObject.get(聽
"name"聽),聽PropertyUtils.getProperty(聽bean,聽"name"聽)聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽jsonObject.get(聽
"bool"聽),聽PropertyUtils.getProperty(聽bean,聽"bool"聽)聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽jsonObject.get(聽
"int"聽),聽PropertyUtils.getProperty(聽bean,聽"int"聽)聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽jsonObject.get(聽
"double"聽),聽PropertyUtils.getProperty(聽bean,聽"double"聽)聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽jsonObject.get(聽
"func"聽),聽PropertyUtils.getProperty(聽bean,聽"func"聽)聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽List聽expected聽
=聽JSONArray.toList(聽jsonObject.getJSONArray(聽"array"聽)聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽expected,聽(List)聽PropertyUtils.getProperty(聽bean,聽
"array"聽)聽);聽聽
聽聽聽聽聽}
聽聽聽聽聽
聽聽聽聽聽
publicvoid聽testJsonBean(){
聽聽聽聽聽聽聽聽聽聽聽聽聽String聽json聽
="{\"value\":\"xx\",\"row\":1,\"col\":1}";聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽JSONObject聽jsonObject聽
=聽JSONObject.fromString(json);
聽聽聽聽聽聽聽聽聽聽聽聽JsonBean2聽bean聽
=聽(JsonBean2)聽JSONObject.toBean(聽jsonObject,聽JsonBean2.class聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽jsonObject.get(聽
"col"聽),new聽Integer(聽bean.getCol())聽聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽jsonObject.get(聽
"row"聽),聽new聽Integer(聽bean.getRow()聽)聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽jsonObject.get(聽
"value"聽),聽bean.getValue()聽);聽聽
聽聽聽聽聽}
}聽聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽聽


json <-> xml
JSON to XML
  1. JSONObject聽json聽=聽new聽JSONObject(聽true聽);聽聽
  2. String聽xml聽=聽XMLSerializer.write(聽json聽);聽聽
  1. <oclass="object"null="true">聽聽
  2. 聽聽聽聽聽聽
  1. JSONObject聽json聽=聽JSONObject.fromObject("{\"name\":\"json\",\"bool\":true,\"int\":1}");聽聽
  2. String聽xml聽=聽XMLSerializer.write(聽json聽);聽聽
  1. <oclass="object">聽聽
  2. 聽聽聽<nametype="string">json</name>聽聽
  3. 聽聽聽<booltype="boolean">true</bool>聽聽
  4. 聽聽聽<inttype="number">1</int>聽聽
  5. </o>聽聽
  1. JSONArray聽json聽=聽JSONArray.fromObject("[1,2,3]");聽聽
  2. String聽xml聽=聽XMLSerializer.write(聽json聽);聽聽
  1. <aclass="array"<聽聽
  2. 聽聽聽<etype="number">1</e>聽聽
  3. 聽聽聽<etype="number">2</e>聽聽
  4. 聽聽聽<etype="number">3</e>聽聽
  5. </a>聽聽
xml to json
  1. <aclass="array">聽聽
  2. 聽聽<etype="function"params="i,j">聽聽
  3. 聽聽聽聽聽聽return聽matrix[i][j];聽聽
  4. 聽聽</e>聽聽
  5. </a>聽聽
  1. JSONArray聽json聽=聽(JSONArray)聽XMLSerializer.read(聽xml聽);聽聽
  2. System.out.println(聽json聽);聽聽
  3. //聽prints聽[function(i,j){聽return聽matrix[i][j];聽}]




G_G 2007-10-08 15:08 鍙戣〃璇勮
]]>
json 浣跨敤http://www.aygfsteel.com/Good-Game/archive/2007/09/13/144785.htmlG_GG_GThu, 13 Sep 2007 03:36:00 GMThttp://www.aygfsteel.com/Good-Game/archive/2007/09/13/144785.htmlhttp://www.aygfsteel.com/Good-Game/comments/144785.htmlhttp://www.aygfsteel.com/Good-Game/archive/2007/09/13/144785.html#Feedback2http://www.aygfsteel.com/Good-Game/comments/commentRss/144785.htmlhttp://www.aygfsteel.com/Good-Game/services/trackbacks/144785.html

浣跨敤鍚庡ソ澶劼?br />聽聽聽 java 鍜?javascript 浣跨敤鍚岀粺涓瀵硅薄,璇硶聽. 鏁版嵁浠?sever 鍒?v灞偮犲拰聽v灞?鍒?sever 聽鏂逛究.
聽聽聽聽聽聽聽聽聽聽聽 綆鍗曡灝辨槸聽JBean 涓嶅仛淇敼鎷垮埌V灞?褰?JSBean (javascript 綾?聽涓敤

1.url 涔辯爜闂鍙傜収 Ajax uri 涔辯爜闂鎬葷粨(IE,FF)
2.浣跨敤jar鏄?jxpath ; json聽 ......(涓庣浉鍏?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽jxpath 鍙傜収 jxpath 瀛︿範(fàn)絎旇
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽json 鍙傜収 浣跨敤json-lib

渚嬮璇存槑 鏁版嵁 name,avg 鍦ㄩ氳繃 ajax json 鍚?avg +1 鍐嶅睍鐜板埌欏甸潰
鏈〉闇瑕?json.js 涓嬭澆鍒?http://www.json.org/json.js

<% @聽page聽pageEncoding = " GBK " %>
<% @聽page聽contentType = " text/html;聽charset=GBK " %> 聽聽
< html >
聽聽
< head >
聽聽聽聽
< title > json.html </ title >
聽聽聽聽
聽聽聽聽
< meta聽 http-equiv ="keywords" 聽content ="keyword1,keyword2,keyword3" >
聽聽聽聽
< SCRIPT聽 src ="../js/json.js" ></ SCRIPT >
聽聽聽聽
< script聽 language ="javascript" 聽type ="text/javascript" >
聽聽聽聽
var 聽request聽 = false ;
聽聽聽聽
聽 // javascript 聽Ajax聽 娌′粈涔堝ソ璇寸殑 榪欏彲浠ョ敤 prototype prototype.js 鐨勭悊瑙?/font>聽聽,dojo聽dojo聽 絳?ajax
聽 //鏈緥聽涓烘柟渚跨洿鎺ュ啓浜?^_^

聽聽聽聽
function 聽getOpen(){聽聽聽聽聽聽
聽聽聽聽聽聽聽
try 聽{
聽聽聽聽聽聽聽聽聽request聽
= new 聽XMLHttpRequest();
聽聽聽聽聽聽聽}聽
catch 聽(trymicrosoft)聽{
聽聽聽聽聽聽聽聽聽
try 聽{
聽聽聽聽聽聽聽聽聽聽聽request聽
= new 聽ActiveXObject( " Msxml2.XMLHTTP " );
聽聽聽聽聽聽聽聽聽}聽
catch 聽(othermicrosoft)聽{
聽聽聽聽聽聽聽聽聽聽聽
try 聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽request聽
= new 聽ActiveXObject( " Microsoft.XMLHTTP " );
聽聽聽聽聽聽聽聽聽聽聽}聽
catch 聽(failed)聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽request聽
= false ;
聽聽聽聽聽聽聽聽聽聽聽}聽聽
聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽}
聽聽聽聽}聽聽聽
聽聽聽聽聽聽聽
聽聽聽聽聽聽聽
聽聽聽聽聽聽
function 聽getCustomerInfo()聽{
聽聽聽聽聽聽getOpen();
聽聽聽聽聽聽聽
if 聽( ! request)
聽聽聽聽聽聽聽聽聽alert(
" Error聽initializing聽XMLHttpRequest! " );
聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽 //榪欓氳繃 url 鎶婃暟鎹紶緇?server聽
聽聽聽聽聽聽 //鏁版嵁鏉ユ簮 javascript 綾?灝變笅鏂?DBdata
聽聽聽聽 string:聽name:鎴戝悕瀛梌_^聽聽,聽 int:聽avg:騫撮緞^_^
聽聽聽聽聽聽聽聽聽
var 聽url聽 = " /json/json?jsonStr= " + 聽( new 聽DBdata()).toJSONString()聽;
聽聽聽聽聽聽聽聽聽request.open(
" GET " ,聽url,聽 true );
聽聽聽聽聽聽聽聽聽request.send(
null );
聽聽聽聽聽聽聽聽聽request.onreadystatechange聽
= 聽updatePage;
聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽
聽聽聽聽聽聽 //聽ajax 澶勭悊聽鏁版嵁鍚庤繑鍥炵殑聽緇撴灉聽
聽聽聽聽聽 // 騫撮緞 +1聽騫惰緭鍏ュ埌 杈撳叆妗嗕腑
聽聽聽聽聽聽聽
function 聽updatePage(){
聽聽聽聽聽聽聽
if 聽(request.readyState聽 == 4 )聽
聽聽聽聽聽聽聽聽聽聽聽
if 聽(request.status聽 == 200 ){聽
聽聽聽聽聽聽聽聽聽聽聽 //寰楀埌 json str
聽聽聽聽聽聽聽聽聽聽聽聽聽
var 聽jss聽 = 聽request.responseText;
聽聽聽聽聽聽聽聽聽聽聽 //鍔犺澆鍒?javascript 綾諱腑 string -> jsBean
聽聽聽聽聽聽聽聽聽聽聽聽聽
var 聽jsobj聽 = 聽eval('('聽 + 聽jss聽 + 聽')');
聽聽聽聽聽聽聽聽聽聽聽聽 //浣跨敤鍜?java瀵硅薄涓鏍?^_^
聽聽聽聽聽聽聽聽聽聽聽聽聽document.getElementById('xx').value聽
= jsobj.name + ':' + jsobj.avg聽;
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽}
聽聽聽聽
//鏁版嵁鏉ユ簮
聽聽聽聽聽
function 聽DBdata(){
聽聽聽聽聽聽聽聽聽
this .name聽 = 聽'鍒樺嚡姣?;
聽聽聽聽聽聽聽聽聽
this .avg = 23 ;聽
聽聽聽聽聽聽聽聽聽
this .init = function (){
聽聽聽聽聽聽聽聽聽聽聽聽聽alert('鍛靛懙');
聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽}
</ script >
聽聽
</ head >
聽聽
< body聽 onload ="" >
聽聽聽聽聽聽
< INPUT聽 id ='xx'聽 type ="text" >
聽聽聽聽聽聽
< INPUT聽 id ='x'聽 type ="button" 聽onclick ="getCustomerInfo()" 聽value ="go" >
聽聽
</ body >
</ html >

涓轟簡(jiǎn)鏂逛究鏄庝簡(jiǎn)鎴慾ava鏂瑰氨浣跨敤浜?server
package聽servlet;

import聽java.io.IOException;
import聽java.io.PrintWriter;

import聽javax.servlet.ServletException;
import聽javax.servlet.http.HttpServlet;
import聽javax.servlet.http.HttpServletRequest;
import聽javax.servlet.http.HttpServletResponse;

import聽org.apache.commons.jxpath.JXPathContext;

import聽net.sf.json.JSONObject;


publicclass聽Json聽extends聽HttpServlet聽{
聽聽聽聽
publicvoid聽doGet(HttpServletRequest聽req,HttpServletResponse聽rpo)throws聽ServletException,IOException{
聽聽聽聽聽聽聽聽rpo.setCharacterEncoding(
"GBK");
聽聽聽聽聽聽聽聽req.setCharacterEncoding(
"GBK");
聽聽聽聽聽聽聽聽rpo.setContentType(
"text/html;聽charset=GBK");
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽PrintWriter聽out聽
=聽rpo.getWriter()聽;
聽聽聽聽聽聽聽
聽聽聽 聽聽聽 //寰楀埌 url 浼犲叆鏁版嵁
聽聽聽聽聽聽聽聽String聽str聽
=聽req.getParameter("jsonStr")聽;
聽聽聽 聽聽//java 鏂?string -> javaBean
聽聽聽聽聽聽聽聽JSONObject聽jso聽
=聽JSONObject.fromString(str);
聽聽聽 聽聽聽 //javaBean 浣跨敤jxpathcontxt瑙h鏇存柟渚?^_^
聽聽聽聽聽聽聽 //鍏跺疄jso涓槸浠?map 褰㈠紡瀛樺尯鐨?鏈夊叴瓚g殑鍙互鑷繁鍔ㄦ墜鍐欎笅鍝?/font>

聽聽聽聽聽聽聽聽JXPathContext聽jx聽
=聽JXPathContext.newContext(jso);
聽聽聽聽聽聽聽聽
try聽{
聽聽聽 聽聽 聽聽 聽聽 //jxpath濂藉鏉ヤ簡(jiǎn) avg + 1
聽聽聽聽聽聽聽聽聽聽聽聽jx.setValue(
"./avg",聽jx.getValue("./avg聽+聽1聽")聽);
聽聽聽聽聽聽聽聽}聽
catch聽(Exception聽e)聽{e.printStackTrace();}
聽聽聽 聽聽聽
聽聽聽 聽聽 //浠?jsonString 浼犲嚭
聽聽聽聽聽聽聽聽out.print(jso.toString());

聽聽聽聽}
}

web.xml錛堝ソ璞℃湁鐐瑰鍢翠簡(jiǎn) 鍝堝搱 鏂逛究涓嬪叆闂ㄤ漢浜?jiǎn)锛?jí)
聽聽聽聽<servlet>
聽聽聽聽聽聽聽聽
<servlet-name>json</servlet-name>
聽聽聽聽聽聽聽聽
<servlet-class>servlet.Json</servlet-class>
聽聽聽聽
</servlet>
聽聽聽聽
<servlet-mapping>
聽聽聽聽聽聽聽聽
<servlet-name>json</servlet-name>
聽聽聽聽聽聽聽聽
<url-pattern>/json</url-pattern>
聽聽聽聽
</servlet-mapping>





G_G 2007-09-13 11:36 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 延边| 永仁县| 阜城县| 永定县| 慈溪市| 饶平县| 临漳县| 福安市| 信阳市| 泌阳县| 文成县| 望城县| 新兴县| 蓬莱市| 蒙城县| 安徽省| 德化县| 家居| 英吉沙县| 峨山| 新田县| 砀山县| 林西县| 盐池县| 武冈市| 峨山| 南汇区| 高台县| 林甸县| 彭州市| 墨玉县| 松原市| 荣成市| 和田县| 苏尼特右旗| 郁南县| 岑溪市| 冕宁县| 富源县| 兴安县| 浦县|