如何解析javascript中stringify函数创建的json字符串?
我想解析javascript中stringify()函数创建的java类(.java)中的json字符串。我知道如何解析字符串,如下所示:如何解析javascript中stringify函数创建的json字符串?,java,javascript,json,google-maps-api-3,Java,Javascript,Json,Google Maps Api 3,我想解析javascript中stringify()函数创建的java类(.java)中的json字符串。我知道如何解析字符串,如下所示: String JSON_DATA = "{" + " \"geodata\": [" + " {" + " \"id\": \"1\"," + "
String JSON_DATA
= "{"
+ " \"geodata\": ["
+ " {"
+ " \"id\": \"1\","
+ " \"name\": \"Julie Sherman\","
+ " \"gender\" : \"female\","
+ " \"latitude\" : \"37.33774833333334\","
+ " \"longitude\" : \"-121.88670166666667\""
+ " },"
+ " {"
+ " \"id\": \"2\","
+ " \"name\": \"Johnny Depp\","
+ " \"gender\" : \"male\","
+ " \"latitude\" : \"37.336453\","
+ " \"longitude\" : \"-121.884985\""
+ " }"
+ " ]"
+ "}";
但是如何解析这个字符串呢
var IO = {
//returns array with storable google.maps.Overlay-definitions
IN: function(arr, //array with google.maps.Overlays
encoded//boolean indicating whether pathes should be stored encoded
) {
var shapes = [],
goo = google.maps,
shape, tmp;
for (var i = 0; i < arr.length; i++)
{
shape = arr[i];
tmp = {type: this.t_(shape.type), id: shape.id || null};
switch (tmp.type) {
case 'CIRCLE':
tmp.radius = shape.getRadius();
tmp.geometry = this.p_(shape.getCenter());
break;
case 'MARKER':
tmp.geometry = this.p_(shape.getPosition());
break;
case 'RECTANGLE':
tmp.geometry = this.b_(shape.getBounds());
break;
case 'POLYLINE':
tmp.geometry = this.l_(shape.getPath(), encoded);
break;
case 'POLYGON':
tmp.geometry = this.m_(shape.getPaths(), encoded);
break;
}
shapes.push(tmp);
}
return shapes;
}
您可以为此使用或。创建保存数据并使用这些LIB的POJO。带Gson的eg
import java.lang.reflect.Type;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
class JsonData {
private String type;
private String id;
private double radius;
private List<Double> geometry;
//Getters & Setters
}
public class JsonParser {
public static void main(String[] args) {
String json = "[{\"type\":\"CIRCLE\",\"id\":null,\"radius\":1730.4622192451884,\"geometry\":[32.3610810916614,50.91339111328125]},{\"type\":\"CIRCLE\",\"id\":null,\"radius\":1831.5495077322266,\"geometry\":[32.35528086804335,50.997161865234375]},{\"type\":\"CIRCLE\",\"id\":null,\"radius\":1612.2461023303567,\"geometry\":[32.34454947365649,51.011924743652344]}]";
Type listType = new TypeToken<List<JsonData>>() {}.getType();
List<JsonData> disputeSummaryArraylistobjectList = new Gson().fromJson(json, listType);
System.out.println(disputeSummaryArraylistobjectList);
}
}
import java.lang.reflect.Type;
导入java.util.List;
导入com.google.gson.gson;
导入com.google.gson.reflect.TypeToken;
类JsonData{
私有字符串类型;
私有字符串id;
私人双半径;
私有列表几何;
//接球手和接球手
}
公共类JsonParser{
公共静态void main(字符串[]args){
字符串json=“[{”type\”:“CIRCLE\”,\“id\”:null,\“radius\”:1730.4622192451884,\“geometry\”:[32.3610810916614,50.91339111328125],{”type\“:“CIRCLE\”,“id\”:null,\“radius\”:1831.5495077322266,\“geometry\:[32.355228086804335,50.99718634375],“type\”,“CIRCLE\”,“id\:“radius\”,“radius\”:null,\,“ids\”,“radius\”,“radius\”:1831.54959507077322266,\”,“geometry\”:[32.3552337\”,“getr[32.34454947365649,51.011924743652344]}]";
类型listType=newTypeToken(){}.getType();
List disputeSummaryArraylistobjectList=new Gson().fromJson(json,listType);
System.out.println(disputeSummaryArraylistobjectList);
}
}
您需要一个JSON解析器来解析Java类或
有两种解析策略:
这两个项目的文档中都包含了大量如何实现两者的示例。您想用javascript解析json字符串吗?您的问题是不清楚您可以使用Gson在Java中解析json:是的,我想在Java类中解析字符串。Java不在javascript中。
import java.lang.reflect.Type;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
class JsonData {
private String type;
private String id;
private double radius;
private List<Double> geometry;
//Getters & Setters
}
public class JsonParser {
public static void main(String[] args) {
String json = "[{\"type\":\"CIRCLE\",\"id\":null,\"radius\":1730.4622192451884,\"geometry\":[32.3610810916614,50.91339111328125]},{\"type\":\"CIRCLE\",\"id\":null,\"radius\":1831.5495077322266,\"geometry\":[32.35528086804335,50.997161865234375]},{\"type\":\"CIRCLE\",\"id\":null,\"radius\":1612.2461023303567,\"geometry\":[32.34454947365649,51.011924743652344]}]";
Type listType = new TypeToken<List<JsonData>>() {}.getType();
List<JsonData> disputeSummaryArraylistobjectList = new Gson().fromJson(json, listType);
System.out.println(disputeSummaryArraylistobjectList);
}
}