如何将JavaScript自定义对象转换成JSON字符串?

xiaoair 2010-11-18 11:24:50
我做了一个jsp页面,用来收集用户的数据,然后在JavaScript里面自定义一个类,将jsp页面收集到的数据保存在这个类里面。最后调用公司的webservice,将数据提交上去,可公司的webservice接口里面的参数是JSON字符串格式,如果我用JavaScript自定义一个类就需要将这个类转换成JSON字符串格式。

贴上jsp页面的代码
<div align="center" >
<form action="">
地址:<input type="text" name="URL" id="URL" size="50"><br><br>
名称:<input type="text" name="Name" id="Name" size="50"><br><br>
介绍:<input type="text" name="Info" id="Info" size="50"><br><br>
<input type="submit" value="将form收集到的数据交给JavaScript处理" onclick="funshow()">
</form>
</div>
另外还想再请教各位大侠,在jsp页面里怎么掉webservice?我用过XFire做过webservice,在写测试客户端的时候是这么写的:
import java.net.URL;

import org.codehaus.xfire.client.Client;

public class WebServiceClient {
public static void main(String[] args) throws Exception{
Client client = new Client(new URL("http://localhost:8080/webService/services/MyWebService?wsdl"));
Object[] results = client.invoke("example", new Object[] {"hello"});
System.out.println(results[0]);

Object[] time = client.invoke("showTime", new Object[]{});
System.out.println(time[0]);
// System.out.println((String)time[0]);
}
}
是把这样的代码写在JavaScript里吗?在JavaScript里面怎么掉这样"http://localhost:8080/webService/services/MyWebService?wsdl"的webservice呢?

希望各位了解这方面知识的大侠留下参考代码?谢谢了
...全文
653 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoair 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ys8616270 的回复:]

JScript code

# function Serialize(obj){
# switch(obj.constructor){
# case Object:
# var str = "{";
# for(var o in obj){
# str……
[/Quote]十分感谢,我测试了一下,这样貌似有问题:
	<script type="text/javascript">
//在JavaScript里面自定义一个类
function User(name,age){
this.name=name;
this.age=age;
this.canFly=false;
}
var u = new User("abc",22);
alert(typeof(u));

var jsonstr = Serialize(new User("def",22));
alert (jsonstr);

function Serialize(obj){
switch(obj.constructor){
case Object:
var str = "{";
for(var o in obj){
str += o + ":" + Serialize(obj[o]) +",";
}
if(str.substr(str.length-1) == ",")
str = str.substr(0,str.length -1);
return str + "}";
break;
case Array:
var str = "[";
for(var o in obj){
str += Serialize(obj[o]) +",";
}
if(str.substr(str.length-1) == ",")
str = str.substr(0,str.length -1);
return str + "]";
break;
case Boolean:
return "\"" + obj.toString() + "\"";
break;
case Date:
return "\"" + obj.toString() + "\"";
break;
case Function:
break;
case Number:
return "\"" + obj.toString() + "\"";
break;
case String:
return "\"" + obj.toString() + "\"";
break;
}
}
</script>
使用浏览器打开时,弹出的是"undefined",这是什么原因?我对JavaScript不熟悉,希望多多指教,多谢了。
forget_kiss 2010-11-18
  • 打赏
  • 举报
回复
用JS把相关数据拼成JSON格式的数据传过去
xiaoair 2010-11-18
  • 打赏
  • 举报
回复
大家都是用Ajax做的吗?希望了解Ajax知识的大侠留下简单的例子,能让在下参考参考。

不胜感激,谢谢了。
insight1989 2010-11-18
  • 打赏
  • 举报
回复

# function Serialize(obj){
# switch(obj.constructor){
# case Object:
# var str = "{";
# for(var o in obj){
# str += o + ":" + Serialize(obj[o]) +",";
# }
# if(str.substr(str.length-1) == ",")
# str = str.substr(0,str.length -1);
# return str + "}";
# break;
# case Array:
# var str = "[";
# for(var o in obj){
# str += Serialize(obj[o]) +",";
# }
# if(str.substr(str.length-1) == ",")
# str = str.substr(0,str.length -1);
# return str + "]";
# break;
# case Boolean:
# return "\"" + obj.toString() + "\"";
# break;
# case Date:
# return "\"" + obj.toString() + "\"";
# break;
# case Function:
# break;
# case Number:
# return "\"" + obj.toString() + "\"";
# break;
# case String:
# return "\"" + obj.toString() + "\"";
# break;
# }
# }


用这个方法。把对象传递进去。然后给web service 传递生成的json字符串。

调用web service不是很熟。上面说的是用javascript转换,你也可以提交到某个servlet,用java代码转换。

81,116

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧