本文通过java对json字符串进行解析操作。首先引入解析json的jar包,采用的是org.json.jar
解析的文件是:
{"menu": {
"id": "file",
"value": "File:",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]}
}}
命名为jsontxt,保存在相关目录下
具体操作代码如下:
package jsontest;
import java.io.*;
import java.util.Map;
import org.json.*;
public class JSonTest
{
public static void main(String []args) throws JSONException
{
JSONObject obj = new JSONObject();
obj.put("oper", 0);
obj.put("new_user", "13823837997");
String str = obj.toString();
System.out.println(str);
String revstr = "{\"new_user\":\"13823837997\",\"oper\": 0,\"result\": 1}";
System.out.println(revstr);
JSONObject revobj = new JSONObject(revstr);
System.out.println(revobj.getInt("result"));
/*-------------------------------------------------------------------------------------------------------------*/
//读文件操作
StringBuffer buffer = new StringBuffer();
try {
BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\Lenovo\\Desktop\\jsontxt.txt"));
String s = null;
while((s = br.readLine()) != null)
buffer.append(s);
br.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//文件内容传入生成一个json对象
JSONObject txtobj = new JSONObject(buffer.toString());
System.out.println(txtobj.getString("menu"));
//根据menu生成一个json对象
JSONObject jslittle = txtobj.optJSONObject("menu");
System.out.println();//空一行
System.out.println(jslittle.getString("id"));
JSONObject jsbig = jslittle.optJSONObject("popup");
System.out.println(jsbig.get("menuitem"));
//根据menuitem生成一个json数组
JSONArray array = jsbig.getJSONArray("menuitem");
//打印读取json数组中的内容
for(int i = 0; i < array.length(); i++)
{
System.out.println(array.getString(i));
JSONObject objarr = array.getJSONObject(i);
System.out.println("value = " + objarr.getString("value") +
" onclick = " + objarr.getString("onclick"));
}
}
}