前端如何通过ajax获取后台的数组数据

新新小白白又白 2019-06-05 10:41:51
下面代码运行后,会弹框,内容为“System.String[]”,而不是数组。为什么呢?

$.ajax({
url: "asdf",
type: "GET",
success: function (data) {
alert(data);
}
});



public string[] asdf()
{
string[] lang = new string[]{"Chinese", "English", "Spanish", "Russian", "French", "Japanese", "Korean", "German"};
return lang;
}
...全文
1519 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wqy3010 2019-10-10
  • 打赏
  • 举报
回复
我也想问,我自己也遇到相同问题
dawninautumn 2019-06-13
  • 打赏
  • 举报
回复
$(function(){
$("#btn").click(function(){

var data2 = {"id":23,"name":"tt","passwd":"345"};
//alert(JSON.stringify(data2));
$.ajax({

type: 'post',
url:'json.action',
cache:false,
data:JSON.stringify(data2),
contentType: 'application/json',
dataType: 'json',
success:function(result){
//result = $.parseJSON(result);
alert(result[0].password);
alert(JSON.stringify(result));
},

});
});


@RequestMapping(value="/json.action",method=RequestMethod.POST)
@ResponseBody
public List<Author> getAuthor2(@RequestBody User user){
System.out.println(user.getName());
Author aut1 = authorService.findAuthor(3);
Author aut2 = authorService.findAuthor(4);
List<Author> list = new ArrayList<Author>();
list.add(aut1);
list.add(aut2);
return list;
}
木易66丶 2019-06-06
  • 打赏
  • 举报
回复
var data=JSON.parse(data);//将回调数据拆分成数组 for(var i in data) {         alert(data[i]);      }
Gemini_Kanon 2019-06-06
  • 打赏
  • 举报
回复
引用 11 楼 新新小白白又白 的回复:
[quote=引用 8 楼 Gemini_Kanon 的回复:]
[quote=引用 6 楼 新新小白白又白 的回复:]
[quote=引用 5 楼 Gemini_Kanon 的回复:]
[quote=引用 4 楼 新新小白白又白 的回复:]
[quote=引用 3 楼 Gemini_Kanon 的回复:]
ajax返回的就是json字符串,在前台处理一下就好了

如果想要显示出“Chinese”,要怎么处理?[/quote]
测试了一下,因为后台只是一个数组传到前台变成了list的接送字符串,所以直接循环data取出data[i]就可以了


[/quote]
alert(data);
这个data的数据是System.String[]。
[/quote]
不应该呀,我这和你一样的代码直接就取出data值了[/quote]
我也认为不应该呀,我认为data[0]应该是Chinese呀,不过出来的的确不是。。[/quote]
试试在后台把返回值直接转成json传到前台或者把ajax返回值data转成json试试;或者直接用eval函数(魔鬼函数)转一下
木易66丶 2019-06-06
  • 打赏
  • 举报
回复
var data=JSON.parse(data);//将回调数据拆分成数组 这样呢?
  • 打赏
  • 举报
回复
引用 8 楼 Gemini_Kanon 的回复:
[quote=引用 6 楼 新新小白白又白 的回复:] [quote=引用 5 楼 Gemini_Kanon 的回复:] [quote=引用 4 楼 新新小白白又白 的回复:] [quote=引用 3 楼 Gemini_Kanon 的回复:] ajax返回的就是json字符串,在前台处理一下就好了
如果想要显示出“Chinese”,要怎么处理?[/quote] 测试了一下,因为后台只是一个数组传到前台变成了list的接送字符串,所以直接循环data取出data[i]就可以了 [/quote] alert(data); 这个data的数据是System.String[]。 [/quote] 不应该呀,我这和你一样的代码直接就取出data值了[/quote] 我也认为不应该呀,我认为data[0]应该是Chinese呀,不过出来的的确不是。。
  • 打赏
  • 举报
回复
引用 9 楼 木易66丶 的回复:
var arrData = eval(data); alert(arrData[0]); 试试这个,
这样会报错,语法错误JavaScript runtime error: Syntax error
木易66丶 2019-06-06
  • 打赏
  • 举报
回复
var arrData = eval(data); alert(arrData[0]); 试试这个,
Gemini_Kanon 2019-06-06
  • 打赏
  • 举报
回复
引用 6 楼 新新小白白又白 的回复:
[quote=引用 5 楼 Gemini_Kanon 的回复:]
[quote=引用 4 楼 新新小白白又白 的回复:]
[quote=引用 3 楼 Gemini_Kanon 的回复:]
ajax返回的就是json字符串,在前台处理一下就好了

如果想要显示出“Chinese”,要怎么处理?[/quote]
测试了一下,因为后台只是一个数组传到前台变成了list的接送字符串,所以直接循环data取出data[i]就可以了


[/quote]
alert(data);
这个data的数据是System.String[]。
[/quote]
不应该呀,我这和你一样的代码直接就取出data值了
  • 打赏
  • 举报
回复
循环输出就是 data[0]=S data[1]=y data[2]=s data[3]=t data[4]=e data[5]=m .....
  • 打赏
  • 举报
回复
引用 5 楼 Gemini_Kanon 的回复:
[quote=引用 4 楼 新新小白白又白 的回复:] [quote=引用 3 楼 Gemini_Kanon 的回复:] ajax返回的就是json字符串,在前台处理一下就好了
如果想要显示出“Chinese”,要怎么处理?[/quote] 测试了一下,因为后台只是一个数组传到前台变成了list的接送字符串,所以直接循环data取出data[i]就可以了 [/quote] alert(data); 这个data的数据是System.String[]。
Gemini_Kanon 2019-06-06
  • 打赏
  • 举报
回复
引用 4 楼 新新小白白又白 的回复:
[quote=引用 3 楼 Gemini_Kanon 的回复:]
ajax返回的就是json字符串,在前台处理一下就好了

如果想要显示出“Chinese”,要怎么处理?[/quote]
测试了一下,因为后台只是一个数组传到前台变成了list的接送字符串,所以直接循环data取出data[i]就可以了


  • 打赏
  • 举报
回复
引用 3 楼 Gemini_Kanon 的回复:
ajax返回的就是json字符串,在前台处理一下就好了
如果想要显示出“Chinese”,要怎么处理?
usecf 2019-06-05
  • 打赏
  • 举报
回复
返回string数组对象了,你在前端解析下这个数组就好了
Gemini_Kanon 2019-06-05
  • 打赏
  • 举报
回复
ajax返回的就是json字符串,在前台处理一下就好了
kellymax 2019-06-05
  • 打赏
  • 举报
回复
C# 是如何序列化你的数组返回的,这里没有列出你的代码

52,792

社区成员

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

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