导航:首页 > IDC知识 > java服务器json

java服务器json

发布时间:2020-10-17 16:27:55

1、java中服务端怎么实现jsonp

1. JSONP定义
JSONP是英文JSON with Padding的缩写,是一个非官方的协议。它允许在服务器端生成script tags返回至客户端,通过javascript callback的形式来实现站点访问。 JSONP是一种script tag的注入,将server返回的response添加到页面实现特定功能。

2.JSONP由来
要解释JSONP的来由,先要说一下浏览器的“同源策略(SOP:Same Origin Policy)”。 简而言之,就是浏览器限制脚本程序只能和同协议、同域名、同端口的脚本进行交互,这包括共享和传递变量等。cookie的传递也是遵从同样策略。这就造成一些涉及到多个服务器的应用在整合时一些麻烦。跨域访问的问题造成A站点的Ajax代码无法访问B站点的数据。
如何解决跨域访问呢?那就要借助浏览器的一个特性:尽管浏览器不允许页面中的脚本程序跨域读取数据,但却允许HTML引用跨域的资源,如图片,CSS和脚本程序。对于脚本程序的引用比较特殊,它被浏览器解析以后,就和本地的脚本程序别无二致且可立即进行解释并执行。如在B站点的一个js文件,一个简单的提示框:alert(“This is Victor!”);。在A站点引用这个js,这个脚本就会在B站点的应用中执行,显示一个alert信息。由于站外脚本的引用是通过script tag来实现的,而脚本程序又可通过DOM的方式可以对HTML页面的所有标签进行控制(包括动态的创建script标签),这就可以实现通过调用站外程序对本地资源进行更改了。另外,通过<script> 标记的使用,就可从服务端直接返回可执行的JavaScript函数调用或者JSON数据。
3. JSONP原理与实现
首先在客户端注册一个callback, 然后把callback的名字传给服务器。此时,服务器先生成 JSON数据。然后以JavaScript 语法的方式,生成一个function, function名字就是传递上来的参数jsonp.

然后,将JSON数据直接以入参的方式,放置到function中,这样就生成了一段 js 语法的文档,返回给客户端。

最后,在客户端浏览器中解析script标签,并执行返回的JavaScript文档,此时数据作为参数,传入到了客户端预先定义好的回调函数里(动态执行回调函数) 。

2、java用服务端怎么用json数据传输到安卓客户端

java用服务端怎么用json数据传输到安卓客户端
public class MainActivity extends Activity
{

private Button submit = null;
URL url = null;
String urlPath = "http://10.0.3.2:8080/XMLParse/AcceptJsonServlet";
EditText name = null;
EditText age = null;
EditText address = null;

Handler handler = new Handler()
{
public void handleMessage(Message msg)
{
if (msg.what == 0x123)
{

Toast.makeText(MainActivity.this,
"发送成功", Toast.LENGTH_LONG)
.show();

}
else
{
Toast.makeText(MainActivity.this,
"发送失败", Toast.LENGTH_LONG)
.show();

}
}
};

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name = ((EditText) findViewById(R.id.name));
age = ((EditText) findViewById(R.id.age));
address = ((EditText) findViewById(R.id.address));

submit = (Button) findViewById(R.id.submit);

submit.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
new Thread()
{
public void run()
{
JSONObject js = new JSONObject();

JSONObject params = new JSONObject();

// JSONArray array = new JSONArray();

Person p = new Person(name.getText().toString(), age
.getText().toString(), address.getText()
.toString());
// 封装子对象
try
{
js.put("name", p.getName());
js.put("age", p.getAge());
js.put("address", p.getAddress());
// 封装Person数组
params.put("Person", js);
}
catch (JSONException e)
{
e.printStackTrace();
}
// 把Json数据转换成String类型,使用输出流向服务器写
final String content = String.valueOf(params);

try
{
url = new URL(urlPath);
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
conn.setConnectTimeout(5000);
conn.setDoOutput(true);// 设置允许输出
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type",
"application/json; charset=UTF-8"); // 内容类型
OutputStream os = conn.getOutputStream();
os.write(content.getBytes());
os.close();
if (conn.getResponseCode() == 200)
{
handler.sendEmptyMessage(0x123);
}
else
{
handler.sendEmptyMessage(0x122);
}

}
catch (Exception e)
{
e.printStackTrace();
}
}

}.start();

3、javaweb如何在服务端创建文件(如txt,json等)

File writeName = new File(你要存的地方); // 相对路径,如果没有则要建立一个新
//的.txt文件
writeName.createNewFile(); // 创建新文件,有同名的文件的话直接覆盖
FileWriter writer = new FileWriter(writeName);
BufferedWriter out = new BufferedWriter(writer);
out.write(你要写入的信息);

4、用java写服务器怎么获得从前端传来的json数据

通过 JSONObject类就可以了
首先 你把这几个包 下下来 放到你项目。如果有就不要下了:

1.commons-lang.jar
2.commons-beanutils.jar
3.commons-collections.jar
4.commons-logging.jar
5.ezmorph.jar
6.json-lib-2.2.2-jdk15.jar
像你这种是数据形式 就通过 JSONArray 如:
JSONArray datasJson = JSONArray.fromObject(datas);最好把datas toString 一下

5、java服务端如何输出json,我目前只会servlet++jsp~求解。

得到数据后用JSONArray.fromObject(list);

6、java中从服务器上获取的json字符串,怎么存map<integer object>中

如果使用的

net.sf.json

包,可以先用 JSONObject.fromJson(String)转成jsonobject对象,然后使用toBean方法转成map,或者用get去一个个的取。
如果用的jackson包,
private static ObjectMapper mapper = new ObjectMapper();
mapper.readValue(json, Map.class);

7、java后台怎样传json格式的数据

通过 JSONObject类就可以了
首先 你把这几个包 下下来 放到你项目。如果有就不要下了:

1.commons-lang.jar
2.commons-beanutils.jar
3.commons-collections.jar
4.commons-logging.jar
5.ezmorph.jar
6.json-lib-2.2.2-jdk15.jar
像你这种是数内据形式容 就通过 JSONArray 如:
JSONArray datasJson = JSONArray.fromObject(datas);最好把datas toString 一下

8、java语言,如何获取服务器响应发来的json网页(或代码)

json分为json字符串和json对象,一般服务器返回的是json字符串,这种字符串可以通过js提供的一些方法转为json对象(其实也就是js对象),例如方法eval:data = eval('(' + jsonstr + ')');具体可以查看http://www.jb51.net/article/35090.htm
转成js对象之后那就跟操作js一样了

9、Java解析json数据

JSONObject dataJson=new JSONObject("你的Json数据“);
JSONObject response=dataJson.getJSONObject("response");
JSONArray data=response.getJSONArray("data");
JSONObject info=data.getJSONObject(0);
String province=info.getString("province");
String city=info.getString("city");
String district=info.getString("district");
String address=info.getString("address");
System.out.println(province+city+district+address);

10、java怎么读取json格式的数据

java可以使用JSONObject和JSONArray来操作json对象和json数组,具体用法如下

1:java对象与json串转换:

java对象—json串:

JSONObject JSONStr = JSONObject.fromObject(object);

String str = JSONStr.toString();

json串—java对象:

JSONObject jsonObject = JSONObject.fromObject( jsonString );

Object pojo = JSONObject.toBean(jsonObject,pojoCalss);

2:java数组对象与json串转换:

java数组—json串:

JSONArray arrayStr = JSONArray.fromObject(List<?>);

String str = arrayStr.toString();

json串—java数组:

JSONArray array = JSONArray.fromObject(str);

List<?> list = JSONArray.toList(array, ?.class);

与java服务器json相关的知识