วิธีการแปลง hashmap เป็นวัตถุ JSON ใน Java


287

วิธีการแปลงหรือแปลง hashmap เป็นวัตถุ JSON ใน Java และแปลงวัตถุ JSON เป็นสตริง JSON อีกครั้ง

คำตอบ:


435

คุณสามารถใช้ได้:

new JSONObject(map);

ข้อควรระวัง:สิ่งนี้จะใช้ได้กับMap<String, String>!

ฟังก์ชั่นอื่น ๆ ที่คุณสามารถรับได้จากเอกสารประกอบของมัน
http://stleary.github.io/JSON-java/index.html


85
ใช้งานได้กับแผนที่ String, String เท่านั้นและไม่ใช่ String ที่ซับซ้อนวัตถุ
slott

2
คุณจะวางMapลงไปJSONObjectแต่วิธีการที่คุณจะได้รับแผนที่นี้จาก JSONObject?
Yubaraj

1
@Yubi สิ่งนี้อาจช่วยคุณได้: stackoverflow.com/questions/21720759/convert-jsonobject-to-map
Hannoun Yassir

8
@slott เหมาะสำหรับเวอร์ชันที่เก่ากว่า รุ่นใหม่กว่าเช่น kitkat ทำงานได้ดีกับวัตถุที่ซับซ้อนมากขึ้นเช่น HashMap <String, Object> () ที่มี HashMap <String, Object> () เป็น Object ดังนั้นฉันขอแนะนำ Gson
Luismi

ฉันแค่ค้นหามัน
อาเหม็ดอาเหม็ด

169

Gsonยังสามารถใช้ในการทำให้เป็นวัตถุที่ซับซ้อนโดยพลการ

นี่คือวิธีที่คุณใช้:

Gson gson = new Gson(); 
String json = gson.toJson(myObject); 

Gsonจะแปลงคอลเล็กชันเป็นJSONอาร์เรย์โดยอัตโนมัติ Gson สามารถทำให้เป็นอันดับเขตข้อมูลส่วนตัวและละเว้นเขตข้อมูลชั่วคราวโดยอัตโนมัติ


1
หมายเหตุ: วิธีนี้จะไม่เก็บรักษาคีย์ด้วยค่า Null
Vikas

58

ตัวอย่างการใช้ json

Map<String, Object> data = new HashMap<String, Object>();
    data.put( "name", "Mars" );
    data.put( "age", 32 );
    data.put( "city", "NY" );
    JSONObject json = new JSONObject();
    json.putAll( data );
    System.out.printf( "JSON: %s", json.toString(2) );

เอาท์พุท ::

JSON: {
  "age": 32,
  "name": "Mars",
  "city": "NY"
}

นอกจากนี้คุณยังสามารถลองใช้ GSON ของ Google ได้ GSON ของ Google เป็นห้องสมุดที่ดีที่สุดในการแปลง Java Objects ให้เป็นตัวแทน JSON ของพวกเขา

http://code.google.com/p/google-gson/


2
ขออภัยที่ขุด แต่สิ่งที่2ต้องทำในjson.toString(2`)
แจ็ค

String สาธารณะ toString (int radix) .toString (2) ใช้สำหรับการแทนค่าสตริง สำหรับstackoverflow.com/questions/3615721/…
Mohammod Hossain

11
คลาสใดของ JSONObject
Janus Troelsen

18
ไม่มีวิธีดังกล่าว: (ใหม่ org.json.JSONObject ()). putAll ();
Zon

50

คุณสามารถแปลงMapเป็นการJSONใช้Jacksonดังนี้:

Map<String,Object> map = new HashMap<>();
//You can convert any Object.
String[] value1 = new String[] { "value11", "value12", "value13" };
String[] value2 = new String[] { "value21", "value22", "value23" };
map.put("key1", value1);
map.put("key2", value2);
map.put("key3","string1");
map.put("key4","string2");

String json = new ObjectMapper().writeValueAsString(map);
System.out.println(json);

Maven Dependencies สำหรับJackson:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.5.3</version>
    <scope>compile</scope>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.5.3</version>
    <scope>compile</scope>
</dependency>

หากคุณใช้JSONObjectห้องสมุดคุณสามารถแปลงแผนที่JSONเป็นดังนี้:

Map<String, Object> map = new HashMap<>();
// Convert a map having list of values.
String[] value1 = new String[] { "value11", "value12", "value13" };
String[] value2 = new String[] { "value21", "value22", "value23" };
map.put("key1", value1);
map.put("key2", value2);

JSONObject json = new JSONObject(map);
System.out.println(json);

Maven Dependencies สำหรับJSONObject:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20140107</version>
</dependency>

หวังว่าจะช่วยได้ การเข้ารหัสที่มีความสุข


1
ไม่รู้ว่าฉันสามารถส่งผ่านแผนที่เป็นข้อโต้แย้งขอบคุณช่วยได้มาก
Gurkha

@Gurkha ขอบคุณสำหรับการชื่นชม
Ankur Mahajan

1
@AnkurMahajan +1 สำหรับการให้คำตอบที่เหมาะสมกับการพึ่งพา :)
Badman

1
String json = ObjectMapper ใหม่ (). writeValueAsString (แผนที่); Greate
Rohit Luthra

7

ในกรณีของฉันฉันไม่ต้องการการพึ่งพาใด ๆ การใช้ Java 8 คุณสามารถรับ JSON เป็นสตริงได้ง่ายๆ:

Map<String, Object> map = new HashMap<>();
map.put("key", "value");
map.put("key2", "value2");
String json = "{"+map.entrySet().stream()
    .map(e -> "\""+ e.getKey() + "\"" + ":\"" + String.valueOf(e.getValue()) + "\"")
    .collect(Collectors.joining(", "))+"}";

2
คุณไม่ได้หลบหนี ... หากคีย์หรือค่ามี"ตัวแบ่งนี้
Janus Troelsen

คุณพูดถูกวิธีนี้มีข้อ จำกัด บางอย่างไม่สนับสนุนแผนที่ที่ซ้อนกัน
Andrey Sarul

7

คุณสามารถระบุแผนที่และเพิ่มคู่คีย์ - ค่าลงใน JSONObject

วิธี :

private JSONObject getJsonFromMap(Map<String, Object> map) throws JSONException {
    JSONObject jsonData = new JSONObject();
    for (String key : map.keySet()) {
        Object value = map.get(key);
        if (value instanceof Map<?, ?>) {
            value = getJsonFromMap((Map<String, Object>) value);
        }
        jsonData.put(key, value);
    }
    return jsonData;
}

1
ไม่มีทางลัดและทำงานได้อย่างมีประสิทธิภาพหากไม่มีไลบรารีเพิ่มเติม
Maveňツ

Map.Entry <K, V >> entrySet () มีความหมายสำหรับการวนซ้ำของแผนที่ การอ่านคีย์และค้นหาแผนที่สำหรับแต่ละคีย์นั้นเป็นวิธีที่ไม่ดีนัก
Martin

7

Underscore-java library สามารถแปลง hash map หรือรายการ array เป็น json และ Vice verse

import com.github.underscore.lodash.U;
import java.util.*;

public class Main {

    public static void main(String[] args) {

        Map<String, Object> map = new LinkedHashMap<>();
        map.put("1", "a");
        map.put("2", "b");

        System.out.println(U.toJson(map));
        // {
        //    "1": "a",
        //    "2": "b"
        // }
    }
}

5

มาปาร์ตี้ช้า แต่นี่คือGSONของฉัน adhoc writerสำหรับซีเรียลแฮชแม็พ ฉันต้องเขียนแผนที่ของคู่คีย์ - ค่าเป็นคุณลักษณะสตริง json คาดว่าหนึ่งเฉพาะเป็นประเภทจำนวนเต็ม ฉันไม่ต้องการที่จะสร้าง wrapper JavaBean ที่กำหนดเองสำหรับ usecase ง่าย ๆ นี้

คลาส GSON JsonWriter นั้นง่ายต่อการใช้คลาส serializer ที่มีฟังก์ชั่น writer.value () ที่พิมพ์ตัวอักษรน้อยมาก

// write Map as JSON document to http servlet response
Map<String,String> sd = DAO.getSD(123);
res.setContentType("application/json; charset=UTF-8");
res.setCharacterEncoding("UTF-8");
JsonWriter writer = new JsonWriter(new OutputStreamWriter(res.getOutputStream(), "UTF-8"));
writer.beginObject();
for(String key : sd.keySet()) {
    String val = sd.get(key);
    writer.name(key);
    if (key.equals("UniqueID") && val!=null)
        writer.value(Long.parseLong(val));
    else
        writer.value(val);
}
writer.endObject();
writer.close();

หากไม่ต้องการประเภทที่กำหนดเองฉันสามารถใช้ฟังก์ชัน toJson () ได้ gson-2.2.4.jar library อยู่ภายใต้ 190KB โดยไม่มีการอ้างอิงที่โหดร้าย ใช้งานง่ายบนแอปเซิร์ฟเล็ตที่กำหนดเองหรือแอปพลิเคชันแบบสแตนด์อโลนโดยไม่มีการรวมกรอบขนาดใหญ่

Gson gson = new Gson(); 
String json = gson.toJson(myMap); 

4

นี่เป็นงานของห้องสมุด Json คุณไม่ควรลองด้วยตัวเอง ไลบรารี json ทั้งหมดควรใช้สิ่งที่คุณต้องการและคุณสามารถค้นหารายชื่อของไลบรารี Java Json ได้ที่json.orgที่ด้านล่างของหน้า


4

ฉันพบวิธีอื่นในการจัดการกับมัน

Map obj=new HashMap();    
obj.put("name","sonoo");    
obj.put("age",new Integer(27));    
obj.put("salary",new Double(600000));   
String jsonText = JSONValue.toJSONString(obj);  
System.out.print(jsonText);

หวังว่านี่จะช่วยได้

ขอบคุณ



3

สำหรับผู้ที่ใช้org.json.simple.JSONObjectคุณสามารถแปลงแผนที่เพื่อ Json JSONObjectสตริงและแยกมันจะได้รับ

JSONObject object = (JSONObject) new JSONParser().parse(JSONObject.toJSONString(map));

3

จะดีกว่าไม่สาย ฉันใช้GSONเพื่อแปลงรายการของ HashMap เป็นสตริงหากในกรณีที่คุณต้องการมีรายการแบบอนุกรม

List<HashMap<String, String>> list = new ArrayList<>();
HashMap<String,String> hashMap = new HashMap<>();
hashMap.add("key", "value");
hashMap.add("key", "value");
hashMap.add("key", "value");
list.add(hashMap);

String json = new Gson().toJson(list);

สิ่งนี้jsonผลิต[{"key":"value","key":"value","key":"value"}]


สิ่งนี้ไม่ตอบคำถาม มันกำลังผลิตอาร์เรย์ JSON ไม่ใช่วัตถุ JSON และคนอื่นได้แสดงให้เห็นแล้วเราถึงวิธีการสร้างวัตถุ JSON จาก HashMap Gsonโดยใช้
Stephen C

สวัสดี @StephenC บางคนอาจมองหาตัวอย่างของอาร์เรย์ JSON มากกว่า JSON Object เนื่องจากความคิดเห็นสูงสุดได้ให้คำตอบที่ดีที่สุดแล้ว ฉันหวังว่าเราสามารถให้คำตอบอื่น ๆ ที่เกี่ยวข้องกับการเป็นอันดับโดยใช้ GSON ฉันขอโทษคำตอบนี้ควรโพสต์ในหัวข้ออื่น
Kelly Budol

เราควรเขียนคำตอบสำหรับผู้ที่ค้นหาอย่างถูกต้อง หากเราพยายามตอบสนองผู้ที่ไม่สามารถค้นหาด้วยการโพสต์คำตอบนอกหัวข้อเว็บไซต์จะลด "เสียงรบกวน" และทำให้ผู้ที่รู้วิธีค้นหาคำตอบที่เกี่ยวข้องนั้นยากขึ้น หากคุณ (ตอนนี้) ยอมรับว่าคำตอบนี้อยู่ผิดที่โปรดลบออก
Stephen C

1
@KellyBudol ดีหรือไม่ดีคำตอบของคุณคือสิ่งที่ฉันกำลังมองหาขอบคุณ Man
vd

2

นี่คือโซลูชั่นแบบบรรทัดเดียวของฉันกับ GSON:

myObject = new Gson().fromJson(new Gson().toJson(myHashMap), MyClass.class);

2

วิธีนี้ใช้ได้กับ JSON ที่ซับซ้อน:

public Object toJSON(Object object) throws JSONException {
    if (object instanceof HashMap) {
        JSONObject json = new JSONObject();
        HashMap map = (HashMap) object;
        for (Object key : map.keySet()) {
            json.put(key.toString(), toJSON(map.get(key)));
        }
        return json;
    } else if (object instanceof Iterable) {
        JSONArray json = new JSONArray();
        for (Object value : ((Iterable) object)) {
            json.put(toJSON(value));
        }
        return json;
    }
    else {
        return object;
    }
}


1

คุณสามารถใช้ XStream - มันมีประโยชน์จริงๆ ดูตัวอย่างได้ที่นี่

package com.thoughtworks.xstream.json.test;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;

public class WriteTest {

    public static void main(String[] args) {

      HashMap<String,String> map = new HashMap<String,String>();
      map.add("1", "a");
      map.add("2", "b");
      XStream xstream = new XStream(new JettisonMappedXmlDriver());

      System.out.println(xstream.toXML(map));       

    }

}

แต่คุณควรแคชวัตถุ xstream ของคุณทุกคน
Joost

1

หากคุณกำลังใช้อยู่net.sf.json.JSONObjectคุณจะไม่พบคอนJSONObject(map)สตรัคเตอร์อยู่ คุณต้องใช้public static JSONObject fromObject( Object object )วิธีการ วิธีนี้ยอมรับสตริงที่จัดรูปแบบของ JSON, Maps, DynaBeans และ JavaBeans

JSONObject jsonObject = JSONObject.fromObject(myMap);


1

ถ้าคุณใช้วัตถุที่ซับซ้อนคุณควรใช้enableComplexMapKeySerialization ()ตามที่ระบุไว้ในhttps://stackoverflow.com/a/24635655/2914140และhttps://stackoverflow.com/a/26374888/2914140

Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();
Map<Point, String> original = new LinkedHashMap<Point, String>();
original.put(new Point(5, 6), "a");
original.put(new Point(8, 8), "b");
System.out.println(gson.toJson(original));

ผลลัพธ์จะเป็น:

{
 "(5,6)": "a",
 "(8,8)": "b"
}

1

ไม่จำเป็นต้องใช้ไลบรารีการแยกวิเคราะห์ Gson หรือ JSON เพียงแค่ใช้new JSONObject(Map<String, JSONObject>).toString()เช่น:

/**
 * convert target map to JSON string
 *
 * @param map the target map
 * @return JSON string of the map
 */
@NonNull public String toJson(@NonNull Map<String, Target> map) {
    final Map<String, JSONObject> flatMap = new HashMap<>();
    for (String key : map.keySet()) {
        try {
            flatMap.put(key, toJsonObject(map.get(key)));
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
    try {
        // 2 indentSpaces for pretty printing
        return new JSONObject(flatMap).toString(2);
    } catch (JSONException e) {
        e.printStackTrace();
        return "{}";
    }
}

การยกเว้นข้อยกเว้นและส่งคืนวัตถุว่างเปล่าเป็นความคิดที่ไม่ดี
Stephen C

1
    import org.json.JSONObject;

    HashMap<Object, Object> map = new HashMap<>();
    String[] list={"Grader","Participant"};
    String[] list1={"Assistant","intern"};
    map.put("TeachingAssistant",list);
    map.put("Writer",list1);
    JSONObject jsonObject = new JSONObject(map);
    System.out.printf(jsonObject.toString());

    // Result: {"TeachingAssistant":["Grader","Participant"],"Writer":["Assistant","intern"]}

นี่เป็นเพียงการทำซ้ำคำตอบก่อนหน้านี้
Stephen C

1

หากคุณไม่ต้องการ HashMap จริงๆคุณสามารถทำสิ่งนี้ได้:

String jsonString = new JSONObject() {{
  put("firstName", user.firstName);
  put("lastName", user.lastName);
}}.toString();

เอาท์พุท:

{
  "firstName": "John",
  "lastName": "Doe"
}

ใช่แล้ว อย่างไรก็ตามคำถามถามหาวิธีในการสร้างวัตถุ JSON เริ่มต้นจากHashMapและนี่ไม่ได้ตอบว่า
Stephen C

บางคนอาจมาที่นี่จาก google เพื่อค้นหาวิธีแก้ปัญหาทั่วไป คำตอบข้างต้นอาจช่วยพวกเขา
Rafal Enden

1

ฉันใช้ Alibaba fastjson ง่ายและเรียบง่าย:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>VERSION_CODE</version>
</dependency>

และนำเข้า:

import com.alibaba.fastjson.JSON;

แล้ว:

String text = JSON.toJSONString(obj); // serialize
VO vo = JSON.parseObject("{...}", VO.class); //unserialize

ทุกอย่างปกติดี.


1

หากคุณใช้ JSR 374: Java API สำหรับการประมวลผล JSON (javax json) นี่ดูเหมือนจะเป็นการหลอกลวง:

    JsonObjectBuilder job = Json.createObjectBuilder((Map<String, Object>) obj);
    JsonObject jsonObject = job.build();

0

คุณสามารถใช้Gson ไลบรารีนี้มีวิธีง่าย ๆ ในการแปลงวัตถุ Java เป็นวัตถุ JSON และในทางกลับกัน

ตัวอย่าง:

GsonBuilder gb = new GsonBuilder();
Gson gson = gb.serializeNulls().create();
gson.toJson(object);

คุณสามารถใช้ GsonBuilder เมื่อคุณต้องการตั้งค่าตัวเลือกการกำหนดค่าอื่นนอกเหนือจากค่าเริ่มต้น ในตัวอย่างข้างต้นกระบวนการแปลงจะทำให้เป็นโมฆะแอตทริบิวต์จากวัตถุ

อย่างไรก็ตามวิธีนี้ใช้ได้กับประเภทที่ไม่ใช่ทั่วไปเท่านั้น สำหรับประเภททั่วไปคุณต้องใช้ toJson (object, Type)

ข้อมูลเพิ่มเติมเกี่ยวกับ Gson ที่นี่

โปรดจำไว้ว่าวัตถุนั้นต้องใช้อินเตอร์เฟสที่สามารถทำให้เป็นอนุกรมได้


0

สิ่งนี้ใช้ได้กับฉัน:

import groovy.json.JsonBuilder
properties = new Properties()
properties.put("name", "zhangsan")

println new JsonBuilder(properties).toPrettyString()

1
นี่ไม่ใช่คำถาม Groovy
สตีเฟ่นซี

@ stephen-c java เป็นแพลตฟอร์มที่ไม่ได้เป็นเพียงภาษา Groovy เป็นเพียงขวด
jiahut

รหัสในคำถามของคุณไม่ใช่จาวา หากรหัสนั้นใช้งานได้จริงสำหรับคุณแสดงว่าคุณไม่ได้ใช้ Java Java ไม่มีคำสั่ง "println" และคุณไม่สามารถประกาศตัวแปรเช่นนั้นได้ ฉันเดาว่าคุณกำลังใช้ Groovy แต่ฉันไม่แน่ใจ ไม่ว่าจะด้วยวิธีใดแนะนำให้คนใช้ไลบรารี Groovy แทนไลบรารี Java ในโค้ด Java ... ไม่ใช่ความคิดที่ดี
Stephen C

0

วิธี Gson สำหรับแผนที่และรายการที่ซับซ้อนขึ้นอีกเล็กน้อยโดยใช้วิธีTypeToken.getParameterized :

เรามีแผนที่ที่มีลักษณะดังนี้:

Map<Long, List<NewFile>> map;

เรารับชนิดโดยใช้วิธีการgetParameterizedดังกล่าวข้างต้นเช่นนี้

Type listOfNewFiles = TypeToken.getParameterized(ArrayList.class, NewFile.class).getType();
Type mapOfList = TypeToken.getParameterized(LinkedHashMap.class, Long.class, listOfNewFiles).getType();

จากนั้นใช้วัตถุ Gson จากวิธีJsonเช่นนี้โดยใช้วัตถุmapOfListดังนี้

Map<Long, List<NewFile>> map = new Gson().fromJson(fileContent, mapOfList);

วัตถุที่กล่าวถึงNewFileมีลักษณะเช่นนี้:

class NewFile
{
    private long id;
    private String fileName;

    public void setId(final long id)
    {
        this.id = id;
    }

    public void setFileName(final String fileName)
    {
        this.fileName = fileName;
    }
}

JSON ที่ถูก deserialized มีลักษณะเช่นนี้:

{
  "1": [
    {
      "id": 12232,
      "fileName": "test.html"
    },
    {
      "id": 12233,
      "fileName": "file.txt"
    },
    {
      "id": 12234,
      "fileName": "obj.json"
    }
  ],
 "2": [
    {
      "id": 122321,
      "fileName": "test2.html"
    },
    {
      "id": 122332,
      "fileName": "file2.txt"
    },
    {
      "id": 122343,
      "fileName": "obj2.json"
    }
  ]
}


-1

ฉันประสบปัญหาคล้ายกันเมื่อเลิกการตอบสนองจากคำสั่งที่กำหนดเองในซีลีเนียม คำตอบคือ json แต่ซีลีเนียมภายในแปลว่าเป็น java.util.HashMap [String, Object]

หากคุณคุ้นเคยกับสกาล่าและใช้ play-API สำหรับ JSON คุณอาจได้รับประโยชน์จากสิ่งนี้:

import play.api.libs.json.{JsValue, Json}
import scala.collection.JavaConversions.mapAsScalaMap


object JsonParser {

  def parse(map: Map[String, Any]): JsValue = {
    val values = for((key, value) <- map) yield {
      value match {
        case m: java.util.Map[String, _] @unchecked => Json.obj(key -> parse(m.toMap))
        case m: Map[String, _] @unchecked => Json.obj(key -> parse(m))
        case int: Int => Json.obj(key -> int)
        case str: String => Json.obj(key -> str)
        case bool: Boolean => Json.obj(key -> bool)
      }
    }

    values.foldLeft(Json.obj())((temp, obj) => {
      temp.deepMerge(obj)
    })
  }
}

คำอธิบายรหัสขนาดเล็ก:

รหัสสำรวจซ้ำผ่าน HashMap จนกว่าจะพบประเภทพื้นฐาน (String, Integer, Boolean) ประเภทพื้นฐานเหล่านี้สามารถถูกห่อลงใน JsObject โดยตรง เมื่อการเรียกซ้ำถูกเปิดออกลึกลงไปจะเชื่อมต่อกับวัตถุที่สร้างขึ้น

'@unchecked' ดูแลคำเตือนการลบประเภท


นี่ไม่ใช่คำถาม Scala
สตีเฟ่นซี

-1

ก่อนอื่นแปลงวัตถุทั้งหมดของคุณให้เป็นสตริงที่ถูกต้อง

HashMap<String, String> params = new HashMap<>();
params.put("arg1", "<b>some text</b>");
params.put("arg2", someObject.toString());

จากนั้นแทรกแผนที่ทั้งหมดลงใน org.json.JSONObject

JSONObject postData = new JSONObject(params);

ตอนนี้คุณสามารถรับ JSON โดยเพียงแค่เรียก toString ของวัตถุ

postData.toString()
//{"arg1":"<b>some text<\/b>" "arg2":"object output"}

สร้าง JSONObject ใหม่

JSONObject o = new JSONObject(postData.toString());

หรือเป็นอาร์เรย์ไบต์สำหรับส่งผ่าน HTTP

postData.toString().getBytes("UTF-8");

นี่เป็นการพูดแบบเดียวกับคำตอบก่อนหน้านี้เมื่อหลายปีก่อนโดยไม่มีข้อได้เปรียบของการรัดกุม
Stephen C

@StephenC ฉันไม่รู้ว่าคุณกำลังทำอะไรอยู่
G_V

@StephenC "วิธีการแปลงหรือทอด hashmap เป็นวัตถุ JSON ใน Java และแปลงวัตถุ JSON เป็นสตริง JSON อีกครั้ง"
G_V

362 คน (และเพิ่มขึ้นเรื่อย ๆ) คิดว่าstackoverflow.com/a/12155874/139985ตอบคำถาม มันบอกโดยทั่วไปสิ่งที่คำตอบของคุณพูดโดยไม่มีบิตเป็นชิ้น
Stephen C
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.