1.我在msyql数据库直接存储了一个字段result,其内容为一个json数组字符串:[{"职业规划":"25","计算机与科学":"85"},{"体育":"25","计算机与科学":"85"}]2.客户端发起对php的请求,用字符串data接收返回到的数据:...
1.我在msyql数据库直接存储了一个字段result,其内容为一个json数组字符串:
[{"职业规划":"25","计算机与科学":"85"},{"体育":"25","计算机与科学":"85"}]
2.客户端发起对php的请求,用字符串data接收返回到的数据:
String data = response.body().string;
打印出来为:
3.将data转为JSONArray报错:
JSONArray dataArray = new JSONArray(data);
org.json.JSONException: Value [{"职业规划":"25","计算机与科学":"85"},{"体育":"25","计算机与科学":"85"}] of type java.lang.String cannot be converted to JSONArray
4.通过测试,直接这样可以正常解析:
String data = "[{"职业规划":"25","计算机与科学":"85"},{"体育":"25","计算机与科学":"85"}]";
JSONArray dataArray = new JSONArray(data);
5.我通过测试,正常返回的JSON应该是这样的:
但是如果是将json直接以字段的形式查询返回却是这样的:
不知道是不是因为这样所以才不能解析???
在PHP中,能够运用json_encode(字符串数组,true)要领来将字符串数组转为json对象。注重:json_encode的默许返回值不是JSON对象,而是JSON花样字符串;假如要转换成json对象,须要在后面到场参数true。PHP json_...
在PHP中,能够运用json_encode(字符串数组,true)要领来将字符串数组转为json对象。注重:json_encode的默许返回值不是JSON对象,而是JSON花样字符串;假如要转换成json对象,须要在后面到场参数true。
PHP json_encode() 用于对变量举行 JSON 编码,该函数假如实行胜利返回 JSON 数据,不然返回 FALSE 。
语法
string json_encode ( $value [, $options = 0 ] )
参数
value: 要编码的值。该函数只对 UTF-8 编码的数据有用。
options:由以下常量构成的二进制掩码:JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT
示例:字符串数组转为json对象
定义一个数组,挪用json_encode要领将数组编码为json花样的字符串,这里须要注重json_encode要领的返回值不是一个JSON对象而是JSON花样字符串,假如要转换成json对象,须要在后面到场参数true。
末了转成json后须要将输出编码后的json花样的字符串:
输出:
引荐进修:php教程
以上就是php中字符串数组怎样转为json对象?的细致内容,更多请关注ki4网别的相干文章!
收藏 | 0
字符串转对象(strJSON代表json字符串) var obj = eval(strJSON); var obj = strJSON.parseJSON(); var obj = JSON.parse(strJSON); json对象转字符串(obj代表json对象) var str = obj....
JS中:
json格式字符串转json对象(strJSON代表json字符串)
var obj = eval(strJSON);
var obj = strJSON.parseJSON();
var obj = JSON.parse(strJSON);
json对象转json格式字符串(obj代表json对象)
var str = obj.toJSONString();
var str = JSON.stringify(obj)
运用时候需要除了eval()以外,其他的都需要引入json.js包,切记!!!
PHP中:
1、json_encode():
1.1、将php数组转换为json字符串
1、索引数组

$arr= Array('one','two','three');
echojson_encode($arr);

输出

["one","two","three"]

2、关联数组:

$arr= Array('1'=>'one','2'=>'two','3'=>'three');
echojson_encode($arr);

输出变为

{"1":"one","2":"two","3":"three"}

1.2、将php类转换为json字符串

classFoo {
constERROR_CODE ='404';
public$public_ex='this is public';
private$private_ex='this is private!';
protected$protected_ex='this should be protected';
publicfunctiongetErrorCode() {
returnself::ERROR_CODE;
}
}

现在,对这个类的实例进行json转换:

$foo=newFoo;
$foo_json= json_encode($foo);
echo$foo_json;

输出结果是

{"public_ex":"this is public"}

2、json_decode():
将json文本转换为相应的PHP数据结构
2.1、通常情况下,json_decode()总是返回一个PHP对象,而不是数组比如:

$json='{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));

结果就是生成一个PHP对象:

object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}

2.2、如果想要强制生成PHP关联数组,json_decode()需要加一个参数true:

$json='{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json,true));

结果就生成了一个关联数组:

array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}

3、json_decode()的常见错误
下面三种json写法都是错的

$bad_json="{ 'bar': 'baz' }";
$bad_json='{ bar: "baz" }';
$bad_json='{ "bar": "baz", }';

对这三个字符串执行json_decode()都将返回null,并且报错。
第一个的错误是,json的分隔符(delimiter)只允许使用双引号,不能使用单引号。
第二个的错误是,json名值对的"名"(冒号左边的部分),任何情况下都必须使用双引号。
第三个的错误是,最后一个值之后不能添加逗号(trailing comma)。
另外,json只能用来表示对象(object)和数组(array),如果对一个字符串或数值使用json_decode(),将会返回null。

var_dump(json_decode("Hello World"));//null

js数组转字符串的方法:1、使用toString()函数,语法“Array.toString()”;2、使用join()函数,将数组元素连接...JavaScript 允许数组与字符串之间相互转换。其中 Array 方法对象定义了 2 个方法,可以把数组转换...
js数组转字符串的方法:1、使用toString()函数,语法“Array.toString()”;2、使用join()函数,将数组元素连接起来以构建一个字符串,语法“array.join(分隔符)”。
本教程操作环境:windows7系统、ECMAScript 5版、Dell G3电脑。
JavaScript 允许数组与字符串之间相互转换。其中 Array 方法对象定义了 2 个方法,可以把数组转换为字符串,如表所示。Array 对象的数组与字符串相互转换方法数组方法说明
toString()将数组转换成一个字符串
join()将数组元素连接起来以构建一个字符串
方法1:使用 toString() 方法
数组中 toString() 方法能够把每个元素转换为字符串,然后以逗号连接输出显示。var a = [1,2,3,4,5,6,7,8,9,0]; //定义数组
var s = a.toString(); //把数组转换为字符串
console.log(s); //返回字符串“1,2,3,4,5,6,7,8,9,0”
console.log(typeof s); //返回字符串string,说明是字符串类型
当数组用于字符串环境中时,JavaScript 会自动调用 toString() 方法将数组转换成字符串。在某些情况下,需要明确调用这个方法。var a = [1,2,3,4,5,6,7,8,9,0]; //定义数组
var b = [1,2,3,4,5,6,7,8,9,0]; //定义数组
var s = a + b; //数组连接操作
console.log(s); //返回“1,2,3,4,5,6,7,8,9,01,2,3,4,5,6,7,8,9,0”
console.log(typeof s); //返回字符串string,说明是字符串类型
toString() 在把数组转换成字符串时,首先要将数组的每个元素都转换为字符串。当每个元素都被转换为字符串时,才使用逗号进行分隔,以列表的形式输出这些字符串。