本问题已经有最佳答案,请猛点这里访问。
我有一个非常复杂的字符串,如下所示,
"data":"[
{
"id":"123456",
"from":
{
"name":"ABC",
"id":"123"
},
"message":"isafh",
"story":"Best Story",
"properties":
[
{
"name":"By",
"text":"PROUD TO BE AN INDIAN",
"href":"www.xyz.com"
}
],
"privacy":
{
"value":""
},
"type":"photo",
"created_time":"2013-10-24T07:17:28+0000",
"updated_time":"2013-10-24T07:17:28+0000"
},
{
"id":"122423456",
"from":
{
"name":"ABCaasd",
"id":"124233"
},
"message":"isafh",
"story":"Best nice Story",
"properties":
[
{
"name":"By",
"text":"PROUD TO BE AN INDIAN",
"href":"www.abc.com"
}
],
"privacy":
{
"value":""
},
"type":"photo",
"created_time":"2013-10-24T07:17:28+0000",
},
{
Similar data as above {... }
},
]"
"next token":"1233"
这里所有JSON数据都在这些括号"[]"中,它们用"{...}"括号分隔。我想要一个来自所有花括号的消息,故事和属性。
尝试了两件事,一件是两件事再次把所有东西放在一个JSON对象中,并尝试了无用的尝试来匹配正则表达式"消息:",但即使这样也行不通。
从所有大括号中查找消息,故事和属性的方法是什么。
这对于JSON来说并不复杂,并且十几个不同的Java / JSON工具包(请参阅json.org)中的任何一个都可以轻松处理它。
除了其他答案,我建议使用Jackson(你可能需要核心和数据包包)。
正则表达式不适合解析复杂的数据结构,如JSON或HTML文档。 幸运的是,我们有快速,可靠和免费的图书馆,可以很好地完成这项工作。
请参阅json.org的Java解决方案,或者可以解析json.org中列出的JSON的其他库列表(滚动到页面底部)。
使用json.org的库解析JSON文档非常简单:
String json ="{ "message" : "Hi, this is the value for the key \\"message\\"" }";
JSONObject myObject = new JSONObject(json); // This line actually parses the JSON text
System.out.println(myObject.getString("message"));
使用这个JSONObject myObject = new JSONObject(json); 它说构造函数没有定义为String作为参数。我想我没有使用正确的包。请你告诉我应该使用哪个确切的包?目前我正在使用链接和链接jar.Thanks。
@ashubhargave你可以从这里下载jar
使用像google-gson这样的json库https://code.google.com/p/google-gson/
这是一个使用gson-1.7.1.jar测试的工作示例,但它也应该与最新版本一起使用。
[cc lang="java"] public static void main(String [] args){
String jsonData ="{"data":[{"id":"123456","from":{"name":"ABC","id":"123"},"message":"isafh"," 故事":"最佳故事","属性":[{"name":"By","text":"PROUD TO OF INDIAN","href":"www.xyz.com \ n
你好@ melc.I尝试了你说的方式。但它对我不起作用。
@ashubhargave用一个工作示例更新了答案。
非常感谢@melc ....这就像一个魅力......