Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解析javascript中stringify函数创建的json字符串?_Java_Javascript_Json_Google Maps Api 3 - Fatal编程技术网

如何解析javascript中stringify函数创建的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\"," + "

我想解析javascript中stringify()函数创建的java类(.java)中的json字符串。我知道如何解析字符串,如下所示:

                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类或

有两种解析策略:

  • 创建Java对象并让JSON解析器将输入中的元素映射到字段
  • 遍历解析器返回的通用JSON数据结构

  • 这两个项目的文档中都包含了大量如何实现两者的示例。

    您想用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);
        }
    
    }