用java,怎么把php数组转换成HashMap或者集合
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java,怎么把php数组转换成HashMap或者集合相关的知识,希望对你有一定的参考价值。
php数组如:array (
0 =>
array (
'url' => 'abc',
'alt' => '123,
),
1 =>
array (
'url' => 'bcd',
'alt' => '234',
),
2 =>
array (
'url' => 'cde',
'alt' => '345',
),
)
public static void main(String[] args)
List<HashMap<String, Object>> list = new ArrayList<HashMap<String,Object>>();
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("url", "abc");
map.put("alt","123");
list.add(map);
HashMap<String, Object> map1 = new HashMap<String, Object>();
map1.put("url", "bcd");
map1.put("alt", "234");
list.add(map1);
HashMap<String, Object> map2 = new HashMap<String, Object>();
map2.put("url", "cde");
map2.put("alt", "345");
list.add(map2);
for(HashMap<String, Object> lists : list)
System.out.println(lists);
结果:
alt=123, url=abc
alt=234, url=bcd
alt=345, url=cde 参考技术A 看LZ的描述,似乎是认为可以直接把一个php关联数组拿java中就使用,这样肯定是不行的啊,两种语言都不通用的。为了让两者能互相沟通,就需要一个通用格式的对象,这个对象就是json。两者要互相交换的数据,先转换成json对象传给对方,对方就能识别和使用了。回到问题,如果不这样做,强行传给java端的只能是一段原始的php数组源代码,即普通的string,对java来说,wtf,这是什么鬼?你说这是一个数组?都不符合我的数据结构怎么会是数组呢??硬要把这串string“转换”成HashMap或集合,就只能根据string中的key=>value对应特征进行字符拆分重组,才能得到需要的数据,这个方法LZ又是懂的。 参考技术B 先把php的数组通过json形式发送给java服务端.然后再通过json对象的形式吧他转换成为HashMap
php有个函数是json_encode(array);
转换就直接成为了json字符串. 参考技术C 1 先把数组转化成json数据
<?php
$str = array (0 =>array ('url' => 'abc','alt' => '123'),
1 =>array ('url' => 'bcd','alt' => '234'),
2 =>array ('url' => 'cde','alt' => '345'));
echo json_encode($str);
?>
结果:["url":"abc","alt":"123","url":"bcd","alt":"234","url":"cde","alt":"345"]
然后再用java解析这个json数据 这个java解析json网上很多 不会解析再问我追问
不是 你没懂我的意思啊。。 不是用PHP转换成json,是要用java直接转成json或者转成集合之类的
追答java直接转php是不行的 两种不同的语言 之间进行操作 一定要有一个桥梁 好吧直接只能这样搞了
public class Test
public static void main(String[] args)
List> list = new ArrayList>();
HashMap map = new HashMap();
map.put("url", "abc");
map.put("alt","123");
list.add(map);
HashMap map1 = new HashMap();
map1.put("url", "bcd");
map1.put("alt", "234");
list.add(map1);
HashMap map2 = new HashMap();
map2.put("url", "cde");
map2.put("alt", "345");
list.add(map2);
for(HashMap lists : list)
System.out.println(lists);
结果:
alt=123, url=abc
alt=234, url=bcd
alt=345, url=cde
这是什么意思啊...麻烦好好看下我的提问好么? 我是要把php数组解析后,把里边的数据放到集合或者Map里,关键是php数组怎么用java解析,我目前只能用拆分字符串的方法解析的了
JAVA中怎么把字符串转换成字符数组
JAVA中把字符串转换成字符数组的方法:java中通常用split()分割字符串,返回的是一个数组。
1、如果用“.”作为分隔的话,必须是如下写法,String.split("\\\\."),这样才能正确的分隔开,不能用String.split(".");
2、如果用“|”作为分隔的话,必须是如下写法,String.split("\\\\|"),这样才能正确的分隔开,不能用String.split("|");
3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,如,“acount=? and uu =? or n=?”,把三个都分隔出来,可以用string.split("and|or");
4、如果想在串中使用"\\"字符,则也需要转义.首先要表达"aaaa\\bbbb"这个串就应该用"aaaa\\\\bbbb",如果要分隔就应该这样才能得到正确结果,
String[] aa = "aaa\\\\bbb\\\\bccc".split("\\\\\\\\");
5、如果是"abc"这种字符串,就直接
String string = "abc"
;
char [] stringArr =
string.toCharArray(); //注意返回值是char数组
6、如果要返回byte数组就直接使用getBytes方法就ok了:
<span style="white-space:pre"> </span>String string = "abc" ;
<span style="white-space:pre"> </span>byte [] stringArr = string.getBytes();
方法有很多,用api吧,简单一点,我写一下吧!
import java.util.Scanner;public class ToCharArray
private static Scanner sc=new Scanner(System.in);
public static void main(String[] args)
System.out.println("\\n\\t\\t==========字符串转数组!==========\\n");
init();
//初始化!
private static void init()
for (; ; )
print(input().toCharArray());
//录入!
private static String input()
System.out.println("\\n=====请随便输入:=====");
String s=sc.next();
return s;
//打印!
private static void print(char[] arr)
System.out.print("\\n=======数组打印=======:\\n");
for (int i=0;i<arr.length ;i++ )
System.out.print(arr[i]);
System.out.print("\\n=====================\\n");
参考技术B
java有api可以做到,以下是程序和运行结果。
方法介绍如下:
/**
* Converts this string to a new character array.
*
* @return a newly allocated character array whose length is the length
* of this string and whose contents are initialized to contain
* the character sequence represented by this string.
*/
public char[] toCharArray()
char result[] = new char[count];
getChars(0, count, result, 0);
return result;
参考技术C 使用split()方法可以将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
示例代码:
String str =" a1.jpg,a2.jpg,a3.jpg";
String[] arr = str.split(",");//分割字符串得到数组
List list = java.util.Arrays.asList(arr);//字符数组转list 参考技术D 如果是有分隔符的那种例如"a,b,c";就直接分割就行了.
String string = "a,b,c";
String [] stringArr= string.split(","); //注意分隔符是需要转译滴...
如果是"abc"这种字符串,就直接
String string = "abc" ;
char [] stringArr = string.toCharArray(); //注意返回值是char数组
如果要返回byte数组就直接使用getBytes方法就ok了~~
String string = "abc" ;
byte [] stringArr = string.getBytes();本回答被提问者采纳
以上是关于用java,怎么把php数组转换成HashMap或者集合的主要内容,如果未能解决你的问题,请参考以下文章