版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34819586/article/details/78151950
总结了下php和android的json简易解析:
习惯在代码中学习,下面举了一些简单的例子:
这是后台脚步语言php的:
<?php
//StdClass类是PHP中的一个基类,是一个没有成员方法和属性的空对象。->对象操作符['']数组操作符
$test='{"a":"qq","b":"ww"}';
$json=json_decode($test);
//print_r($json); //可用来查看json对象的具体内容
echo $json->a;//得到qq
/*取消注释可进行测试
$test='[{"a":"加","b":"单"},{"a":"11","b":"22"}]';
$json=json_decode($test);
//print_r($json);
echo $json[1]->a;//得到11
//count($json);//得到数组长度
for($i=0;$i<count($json);$i++){
//遍历对象每次循环都把其中键值对保存到$key和$value变量。foreach可以遍历数组和对象。
foreach($json[$i] as $key=>$value){
print $key.$value."<br/>";
}
}
*/
/*取消注释可进行测试
$test='{"people": [{"firstName": "Brett", "lastName":"McLaughlin"},{ "firstName": "Json", "lastName":"Hunter"}],
"people2": [{"firstName": "Brett2", "lastName":"McLaughli2"},{ "firstName": "Json3", "lastName":"Hunter3"}]}';
$json=json_decode($test);
//print_r($json);
//var_dump($json);//一对象里包含两个公开属性,每个属性里包含两个数组,每个数组里又包含一个对象,每个对象里有三个公开属性
echo $json->people[1]->firstName;//得到Json
//json格式小结:{}中一定要有键名:键值,键值可以是{}或数组。[]中可以包含{}
*/
?>
这是android的:
package ;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
/*
JSONObject是用来解析 {}的,JSONArray 是用来解析[{}]的
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String jsonTest="{\"a\":\"qq\",\"b\":\"ww\"}";
try {
JSONObject jsonObject=new JSONObject(jsonTest);
Toast.makeText(MainActivity.this,jsonObject.getString("a"), Toast.LENGTH_SHORT).show();
} catch (JSONException ex) {
// 异常处理代码
}
/*取消注释即可进行测试
String jsonTest="[{\"id\":\"10\",\"date\":\"2017-09-07\"},{\"id\":\"9\",\"date\":\"2017-09-04\"}]";
try {
JSONArray jsonArray=new JSONArray(jsonTest);
JSONObject jsonObject=jsonArray.getJSONObject(1);
Toast.makeText(MainActivity.this,jsonObject.getString("id"), Toast.LENGTH_SHORT).show();
} catch (JSONException ex) {
// 异常处理代码
}
*/
/*
String json ="{\"people\": [{\"firstName\": \"Brett\", \"lastName\":\"McLaughlin\"},{ \"firstName\": \"Json\", \"lastName\":\"Hunter\"}],\n" +
"\"people2\": [{\"firstName\": \"Brett2\", \"lastName\":\"McLaughli2\"},{ \"firstName\": \"Json3\", \"lastName\":\"Hunter3\"}]}";
try {
JSONObject jsonObject=new JSONObject(json);
JSONArray jsonArray=jsonObject.getJSONArray("people");
JSONObject jsonObject1=jsonArray.getJSONObject(1);
Toast.makeText(MainActivity.this,jsonObject1.getString("firstName"), Toast.LENGTH_SHORT).show();
} catch (JSONException ex) {
// 异常处理代码
}
*/
}
}