Java-Javascript-Json(3J)之間的轉(zhuǎn)換總結(jié)


  • tags:java,json,javascript
  • categories:筆記
  • date: 2016-11-16 20:18:52

在日常的開發(fā)中辨嗽,在前后端的數(shù)據(jù)傳輸與處理中夕膀,總會(huì)遇到j(luò)ava與json的數(shù)據(jù)轉(zhuǎn)換睛廊,javascript內(nèi)json與string之間的轉(zhuǎn)換等姆吭。所以就想總結(jié)看看這三個(gè)之間是如何轉(zhuǎn)換的噪馏,可以有那些方式進(jìn)行轉(zhuǎn)換呢序苏?這3J的轉(zhuǎn)換也總會(huì)與string字符串類型有關(guān)刊懈,因?yàn)樽址谖覀兂绦蛑泻?jiǎn)直不能再常見了这弧。o(≧v≦)o。虚汛。匾浪。所以咧,就打算用具體代碼實(shí)例來看看它們是如何進(jìn)行數(shù)據(jù)處理的卷哩,下一次若是有這種類似的需求蛋辈,就可以很快把代碼擼出來了,也是基本功的問題将谊。


3j.png

下面就根據(jù)目前我的學(xué)習(xí)知識(shí)冷溶,總結(jié)以下它們各自之間的關(guān)系和轉(zhuǎn)換過程。

Java與Json

其中最重要也最長(zhǎng)使用的就是后臺(tái)的java與json數(shù)據(jù)的轉(zhuǎn)換尊浓,包括java pojo轉(zhuǎn)成json字符串逞频,再通過response輸出到瀏覽器前端頁面進(jìn)行渲染等其他處理,當(dāng)然也有眠砾,從前端獲取json格式字符串虏劲,到后臺(tái)接收數(shù)據(jù)后托酸,將字符串轉(zhuǎn)換成bean或者集合等等褒颈。所以,java與json轉(zhuǎn)化的工具庫也是挺多的励堡,主要的包括以下幾種:Jackson,Fastjson,Google-Gson,Json-lib谷丸。。等等应结,具體的可以參考該篇文章Java 的 JSON 開源類庫選擇比較

下面就說說主要使用的幾種工具庫把刨疼。。在此之前鹅龄,把幾個(gè)類庫需要用到的基礎(chǔ)數(shù)據(jù)準(zhǔn)備好揩慕,包括一個(gè)user,book兩個(gè)bean扮休。

public class User {

    private int id;
    private String userName;
    private String password;
    private int age;
    private String phoneNumber;
    private String address;
    private List<Books> lbooks;
//getter setter
...
}

public class Books {

    private String author;
    private String price;
    private String name;
//getter setter
...
}

構(gòu)造的簡(jiǎn)單基礎(chǔ)數(shù)據(jù)迎卤,這些數(shù)據(jù)都是被下面幾種庫所共用的:

    public User user1;
    public User user2;
    public List<User> lusers = new ArrayList<User>();
    public List<Books> lbooks = new ArrayList<Books>(); 
    public Map<Integer,User> musers = new HashMap<Integer,User>();
    
    @Before
    public void init(){
        initUsers();
        lusers.add(user1);
        lusers.add(user2);
        musers.put(1, user1);
        musers.put(2, user2);
    }
    
    public void initUsers(){
    user1 = new User();
    user1.setId(1);
    user1.setUserName("heiOne");
    user1.setPassword("aa");
    user1.setPhoneNumber("1234");
    user1.setAge(20);
    user1.setAddress("CN.GZ");
    
    user2 = new User();
    user2.setId(2);
    user2.setUserName("heiTwo");
    user2.setPassword("bb");
    user2.setPhoneNumber("56789");
    user2.setAge(30);
    user2.setAddress("CN.SH");
    
    Books b1 = new Books();
    b1.setAuthor("泰戈?duì)?);
    b1.setPrice("50.00");
    b1.setName("飛鳥集");
    Books b2 = new Books();
    b2.setAuthor("司湯達(dá)");
    b2.setPrice("40.00");
    b2.setName("紅與黑");
    
    Books b3 = new Books();
    b3.setAuthor("塞林格");
    b3.setPrice("30.00");
    b3.setName("麥田里的守望者");
    lbooks.add(b1);
    lbooks.add(b2);
    List<Books> cbooks = new ArrayList<Books>();
    cbooks.addAll(lbooks);
    user1.setLbooks(lbooks);
    cbooks.add(b3);
    user2.setLbooks(cbooks);
    }

其中,User中包含Books的集合屬性玷坠,為了測(cè)試復(fù)合結(jié)構(gòu)的數(shù)據(jù)集合蜗搔。

  • Jackson:
    Jackjson工具庫功能挺強(qiáng)大的劲藐,可以讀取文件流獲取字節(jié)碼來處理json字符串,也能對(duì)樹模型操作樟凄,提供了api總有關(guān)于節(jié)點(diǎn)的構(gòu)建操作聘芜。當(dāng)然了,也能處理與java對(duì)象的雙向轉(zhuǎn)換缝龄。這點(diǎn)其實(shí)可以從Jackson的maven庫配置的artifactId可以看到汰现,提供對(duì)應(yīng)的不同模塊功能的處理。
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.8.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.jaxrs/jackson-jaxrs-base -->
        <dependency>
            <groupId>com.fasterxml.jackson.jaxrs</groupId>
            <artifactId>jackson-jaxrs-base</artifactId>
            <version>2.8.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider -->
        <dependency>
            <groupId>com.fasterxml.jackson.jaxrs</groupId>
            <artifactId>jackson-jaxrs-json-provider</artifactId>
            <version>2.8.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.8.0</version>
        </dependency>

下面通過編寫的一個(gè)測(cè)試用例類JavaAndJsonWithJackson.java來看看具體的操作二拐。對(duì)于功能性較強(qiáng)的Jackson服鹅,我們只是關(guān)注它的java與json之間轉(zhuǎn)換的部分,它的核心類就是ObjectMapper,有興趣學(xué)習(xí)更多內(nèi)容的可以自行度娘百新。(不過話說連jackson官網(wǎng)都被xx了,汗...)

總的來說企软,若是java類型想要轉(zhuǎn)成json格式字符串,就用writeValueAsString等格式方法饭望;若是json字符串要轉(zhuǎn)成java類型對(duì)象仗哨,則使用readValue方法。
Java POJO與Json之間的轉(zhuǎn)換:
對(duì)于java數(shù)據(jù)轉(zhuǎn)成json铅辞,大多都是writeValue*相關(guān)的方法厌漂。這種也是最簡(jiǎn)單基礎(chǔ)的用法啦...

    @Test
    public void javaPojoPointToJsonStr() throws Exception{
     ObjectMapper om = new ObjectMapper();
     //java pojo轉(zhuǎn)換成json字符串
     String ustr = om.writeValueAsString(user1);
     System.out.println("java user pojo 轉(zhuǎn)換成json字符串:"+ ustr);
     
     //json 字符串轉(zhuǎn)成java pojo
     User jsonUser = om.readValue(ustr, User.class);
     System.out.println("user json 字符串轉(zhuǎn)成User.class pojo"+jsonUser);
    }

//輸出:可以在www.bejson.com在線格式化校驗(yàn)json字符串
java user pojo 轉(zhuǎn)換成json字符串:
{
    "id": 1,
    "userName": "heiOne",
    "password": "aa",
    "age": 20,
    "phoneNumber": "1234",
    "address": "CN.GZ",
    "lbooks": [
        {
            "author": "泰戈?duì)?,
            "price": "50.00",
            "name": "飛鳥集"
        },
        {
            "author": "司湯達(dá)",
            "price": "40.00",
            "name": "紅與黑"
        }
    ]
}
user json 字符串轉(zhuǎn)成User.class pojo:(輸出格式是通過toString定義的)
User.class pojoUser 
[id=1, userName=heiOne, password=aa, age=20, phoneNumber=1234, address=CN.GZ, 
lbooks=[Books [author=泰戈?duì)? price=50.00, name=飛鳥集], 
Books [author=司湯達(dá), price=40.00, name=紅與黑]]]

Java List集合與Json之間的轉(zhuǎn)換:
其實(shí)也都差不多,只是當(dāng)json字符串轉(zhuǎn)成java list集合時(shí)候斟珊,每個(gè)list內(nèi)的數(shù)據(jù)類型是:LinkedHashMap,然后可以通過key苇倡,value形式取出每個(gè)數(shù)據(jù)。

    @Test
    public void javaListPointToJsonStr() throws Exception{
        ObjectMapper om = new ObjectMapper();
        
        //java list轉(zhuǎn)換成json字符串
        String listStr = om.writeValueAsString(lusers);
        System.out.println("java list集合轉(zhuǎn)換為json字符串:"+listStr);
        
        //list形式j(luò)son字符串轉(zhuǎn)換成java list. List<User>不可轉(zhuǎn)
        List uList = om.readValue(listStr, List.class);
        System.out.println("list json 轉(zhuǎn)換成java list集合:"+uList);
        for(int i=0;i<uList.size();i++){
//          System.out.println(uList.get(i).getClass()); //LinkedHashMap
            LinkedHashMap lhm = (LinkedHashMap) uList.get(i);
            System.out.println(lhm.get("userName"));
            System.out.println(lhm.get("lbooks"));
        }
    }

//輸出:
[
    {
        "id": 1,
        "userName": "heiOne",
        "password": "aa",
        "age": 20,
        "phoneNumber": "1234",
        "address": "CN.GZ",
        "lbooks": [
            {
                "author": "泰戈?duì)?,
                "price": "50.00",
                "name": "飛鳥集"
            },
            {
                "author": "司湯達(dá)",
                "price": "40.00",
                "name": "紅與黑"
            }
        ]
    },
    {
        "id": 2,
        "userName": "heiTwo",
        "password": "bb",
        "age": 30,
        "phoneNumber": "56789",
        "address": "CN.SH",
        "lbooks": [
            {
                "author": "泰戈?duì)?,
                "price": "50.00",
                "name": "飛鳥集"
            },
            {
                "author": "司湯達(dá)",
                "price": "40.00",
                "name": "紅與黑"
            },
            {
                "author": "塞林格",
                "price": "30.00",
                "name": "麥田里的守望者"
            }
        ]
    }
]

heiOne
[{author=泰戈?duì)? price=50.00, name=飛鳥集}, {author=司湯達(dá), price=40.00, name=紅與黑}]
heiTwo
[{author=泰戈?duì)? price=50.00, name=飛鳥集}, {author=司湯達(dá), price=40.00, name=紅與黑}, 
{author=塞林格, price=30.00, name=麥田里的守望者}]

Java Map集合與Json之間的轉(zhuǎn)換:
使用方法和輸出都與list集合差不多囤踩,就不在多說了旨椒。

    @Test
    public void javaMapPointToJsonStr()throws Exception{
        ObjectMapper om = new ObjectMapper();
        //java map ---> json
        String mapStr = om.writeValueAsString(musers);
        System.out.println("java map集合轉(zhuǎn)換為json字符串:"+mapStr);
        
        //map json --> java map
        Map umap = om.readValue(mapStr, Map.class);
        System.out.println("map json 轉(zhuǎn)換為java map:"+umap);
//      System.out.println(umap.get("1").getClass());
        for(int i=1;i<=umap.size();i++){
            LinkedHashMap lhm = (LinkedHashMap) umap.get(String.valueOf(i));
            System.out.println(lhm.get("userName"));
            System.out.println(lhm.get("lbooks"));
        }
        
    }

  • FastJson:
    下面這個(gè)就是阿里的fastjson啦,感覺也挺強(qiáng)大和易用的堵漱,主要是通過com.alibaba.fastjson.JSON對(duì)象進(jìn)行轉(zhuǎn)換综慎。
    若是java類型轉(zhuǎn)成json格式字符串,可以使用toJSONString方法勤庐,反之示惊,可以使用parseObject或者parseArray等方法。想了解更多愉镰,可以查看fastjson的github項(xiàng)目

這里的例子輸出可以參考jackson的test測(cè)試用例米罚。這里多說一點(diǎn),fastjson在輸出字符串的時(shí)候丈探,若是數(shù)據(jù)相同則會(huì)出現(xiàn)$ref引用符號(hào)出現(xiàn)录择,在測(cè)試的時(shí)候,發(fā)現(xiàn)若是將帶有這個(gè)引用符號(hào)的json字符串轉(zhuǎn)換成java類型對(duì)象會(huì)出現(xiàn)null值的現(xiàn)象。
maven庫配置:

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

Java POJO與Json之間的轉(zhuǎn)換:

    @Test
    public void javaPojoPointToJsonStr() throws Exception{
     //java pojo轉(zhuǎn)換成json字符串
     String ustr = JSON.toJSONString(user1);
     System.out.println("java user pojo 轉(zhuǎn)換成json字符串:"+ ustr);
//     
     //json 字符串轉(zhuǎn)成java pojo
     User jsonUser = JSON.parseObject(ustr,User.class);
     System.out.println("user json 字符串轉(zhuǎn)成User.class pojo"+jsonUser);
    }

Java List集合與Json之間的轉(zhuǎn)換:

    @Test
    public void javaListPointToJsonStr() throws Exception{
        
//      java list轉(zhuǎn)換成json字符串
        String listStr = JSON.toJSONString(lusers);
        System.out.println("java list集合轉(zhuǎn)換為json字符串:"+listStr);
        
//      list形式j(luò)son字符串轉(zhuǎn)換成java list. JSON.parseObject
        List uList = JSON.parseObject(listStr, List.class);
        System.out.println("list json 轉(zhuǎn)換成java list集合:"+uList);
        for(int i=0;i<uList.size();i++){
//          System.out.println(uList.get(i).getClass());//JSONObject
            JSONObject jo = (JSONObject) uList.get(i);
//          System.out.println(jo.size());
            System.out.println(jo.get("userName"));
            System.out.println(jo.get("lbooks"));
        }
        
        //JSON.parseArray
        List<User> uList1 = JSON.parseArray(listStr, User.class);
        System.out.println(uList1);
        for(User u : uList1){
            System.out.println(u.getUserName());
        }
    }

Java Map集合與Json之間的轉(zhuǎn)換:

    @Test
    public void javaMapPointToJsonStr()throws Exception{
//      //java map ---> json
        String mapStr = JSON.toJSONString(musers);
        System.out.println("java map集合轉(zhuǎn)換為json字符串:"+mapStr);
//      
        //map json --> java map
        //http://blog.csdn.net/weixiaodedao/article/details/51790790  解決使用fastJson中出現(xiàn)$ref問題
        JSONObject umap = JSON.parseObject(mapStr); //引用$ref,null
        System.out.println("map json 轉(zhuǎn)換為java map:"+umap);
//      System.out.println(umap.get("1").getClass());
        for(int i=1;i<=umap.size();i++){
            JSONObject obj = (JSONObject) umap.get(String.valueOf(i)); //com.alibaba.fastjson.JSONObject
            System.out.println(obj.get("userName"));
            
        }
        
    }

  • JSON-lib:
    若是要轉(zhuǎn)換成json格式字符串可以使用JSONObject.fromObject或者JSONArray.fromObject方法糊肠;若是要轉(zhuǎn)換成集合或者java bean則可以使用這些方法JSONArray.toList(已廢棄)或者JSONArray.toArray,至于map的轉(zhuǎn)換辨宠,可以要自己來抽取內(nèi)部數(shù)據(jù)實(shí)現(xiàn)調(diào)整了。

maven庫配置:

        <!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib -->
        <dependency>    
             <groupId>net.sf.json-lib</groupId>    
             <artifactId>json-lib</artifactId>    
            <version>2.4</version>    
            <classifier>jdk15</classifier>    
        </dependency>  

Java POJO與Json之間的轉(zhuǎn)換:

    //http://ryxxlong.iteye.com/blog/583862  json-lib使用方法
    @Test
    public void javaPojoPointToJsonStr() throws Exception{
     //java pojo轉(zhuǎn)換成json字符串,都是先轉(zhuǎn)換成JSONObject對(duì)象
     JSONObject jsonObject = JSONObject.fromObject(user1);
     String ustr = jsonObject.toString();
     System.out.println("java user pojo 轉(zhuǎn)換成json字符串:"+ ustr);
     
//     json 字符串轉(zhuǎn)成java pojo
     User jsonUser = (User) JSONObject.toBean(jsonObject, User.class);
     System.out.println("user json 字符串轉(zhuǎn)成User.class pojo"+jsonUser);
    }

Java List集合與Json之間的轉(zhuǎn)換:

    @Test
    public void javaListAndArrayPointToJsonStr() throws Exception{
        
//      java list轉(zhuǎn)換成json字符串
        JSONArray jsonArray = JSONArray.fromObject(lusers);
        String listStr = jsonArray.toString();
        System.out.println("java list集合轉(zhuǎn)換為json字符串:"+listStr);
        
//      list形式j(luò)son字符串轉(zhuǎn)換成java list. 
//      List<User> uList = JSONArray.toList(jsonArray, User.class); //toList已被廢棄
        User[] array = (User[]) JSONArray.toArray(jsonArray, User.class);
//      System.out.println("list"+uList);
        System.out.println("array:"+array);
        
        //JSON.parseArray
//      for(User u : uList){
//          System.out.println(u.getUserName());
//      }
        for(int i=0;i<array.length;i++){
            System.out.println(array[i].getUserName());
        }
    }

Java Map集合與Json之間的轉(zhuǎn)換:
若是想看看更細(xì)節(jié)的map與json轉(zhuǎn)換货裹,可以參考這篇文章:<u>采用json-lib進(jìn)行Map與Json轉(zhuǎn)換</u>

    @Test
    public void javaMapPointToJsonStr()throws Exception{
//      //java map ---> json 這里map<key,value>中必須為string類型
        Map<String,String> tmp = new HashMap<String,String>();
        tmp.put("one", "apple");
        tmp.put("two", "hehe");
        JSONObject ja= JSONObject.fromObject(tmp);
        System.out.println("java map集合轉(zhuǎn)換為json字符串:"+ja.toString());//{"two":"hehe","one":"apple"}
        
        Map<String,Map<String,String>> mmtmp = new HashMap<String,Map<String,String>>();
        Map<String,String> mtmp = new HashMap<String,String>();
        mtmp.put("inner", "test");
        mmtmp.put("a", mtmp);
        mmtmp.put("b", mtmp);
        JSONArray jsonArray= JSONArray.fromObject(mmtmp);
        System.out.println("java map集合轉(zhuǎn)換為json字符串:"+jsonArray.toString());//[{"b":{"inner":"test"},"a":{"inner":"test"}}]
//      
        //更多使用JSON-LIB 對(duì)map與json轉(zhuǎn)換可以參考該片文章:https://my.oschina.net/heweipo/blog/386808       
    }

關(guān)于java與json數(shù)據(jù)的基本轉(zhuǎn)換常用工具使用方法就寫到這嗤形,當(dāng)然這些都是基礎(chǔ)內(nèi)容,在項(xiàng)目開發(fā)中弧圆,實(shí)則可以自己在封裝工具類對(duì)需求的業(yè)務(wù)進(jìn)行處理赋兵。

Json與Javascript

除了java與json之間需要轉(zhuǎn)換,經(jīng)常在開發(fā)web項(xiàng)目時(shí)候搔预,從后端得到的json字符串在前端處理總會(huì)要轉(zhuǎn)換成json對(duì)象的需求霹期,反之亦然。所以拯田,來看看在前端頁面中的script腳本中是如何處理json數(shù)據(jù)的历造?

其實(shí),javascript原生的就有對(duì)json數(shù)據(jù)轉(zhuǎn)換的方法船庇】圆總的來說,在前端頁面的script腳本中:json字符串想轉(zhuǎn)換成json對(duì)象鸭轮,可以使用
eval('(' + jsonstr + ')')方法臣淤;json對(duì)象要轉(zhuǎn)換成string字符串則可以使用JSON.stringify(jsonObject)方法。

下面看看后端輸出json字符串到前端后窃爷,前端如何處理json字符串的:

  • 后端java代碼:使用jackson來將list集合轉(zhuǎn)換成json字符串輸出:
    public List<User> lusers = new ArrayList<User>();

    @RequestMapping(value="/jj.do",method=RequestMethod.GET)
    public String toJJPage(HttpServletRequest request) throws Exception{
        if(lusers.size()<1)
        initData();
        ObjectMapper om = new ObjectMapper();
        
        //java list轉(zhuǎn)換成json字符串
        String listStr = om.writeValueAsString(lusers);
        System.out.println("java list集合轉(zhuǎn)換為json字符串:"+listStr);
        request.setAttribute("lusers", listStr);
        return "js_json";
    }
  • 在看使用springmvc將頁面跳轉(zhuǎn)到j(luò)s_json.jsp中:
    可以看到邑蒋,將后端中的request域中的lusers屬性輸出是一串json格式字符串,然后在script腳本中使用方法eval('('+str+')'),JSON.stringify方法將json字符串和json對(duì)象互相轉(zhuǎn)換按厘。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
Object listUser = request.getAttribute("lusers");
%>
<!DOCTYPE html>
<html>
  <head>
    <base href="<%=basePath%>">
    <title>Javascript-json</title>
  </head>
   
  <body>
    List user: <%=listUser%>
    <script type="text/javascript">
     var luser = '<%=listUser%>'; 
     alert(luser+':'+typeof(luser));    //string
     //JSON字符串轉(zhuǎn)換為JSON對(duì)象
     var json = eval('(' + luser + ')'); //可用
     var json = JSON.parse(luser);
     alert(json+':'+typeof(json));
     alert(json[0].userName);
     //將json對(duì)象轉(zhuǎn)換為json格式字符串
     var userJson = JSON.stringify(json);   //ok
     alert('json object --> json string:'+userJson);
    </script>
  </body>
</html>

Java與Javascript

咳咳...這個(gè)就是最簡(jiǎn)單了医吊。通常需要將java對(duì)象轉(zhuǎn)換成javascript對(duì)象時(shí)候,一般就是在前端頁面中刻剥,例如jsp等遮咖。在<% %>中可以定義或者java代碼對(duì)象滩字,可以通過<%=variable %>表達(dá)式可以獲取java對(duì)象造虏。結(jié)合這些特性,那么要在script腳本中使用java對(duì)象麦箍,只需要用兩個(gè)'單引號(hào)將java對(duì)象引起來即可賦值給javascript變量漓藕。

可以參照上面json與javascript轉(zhuǎn)換中的jsp頁面中就有使用:

 <script type="text/javascript">
     var luser = '<%=listUser%>';  //將java對(duì)象賦值給javascript變量
     alert(luser+':'+typeof(luser));    //string
    </script>

ok,總結(jié)得差不多了,日后有可以完善的在整合啦...( ̄▽ ̄)~*

參考:
Java 的 JSON 開源類庫選擇比較
JS操作JSON總結(jié)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末挟裂,一起剝皮案震驚了整個(gè)濱河市享钞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖栗竖,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暑脆,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡狐肢,警方通過查閱死者的電腦和手機(jī)添吗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來份名,“玉大人碟联,你說我怎么就攤上這事〗┫伲” “怎么了鲤孵?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)辰如。 經(jīng)常有香客問我普监,道長(zhǎng),這世上最難降的妖魔是什么琉兜? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任鹰椒,我火速辦了婚禮,結(jié)果婚禮上呕童,老公的妹妹穿的比我還像新娘漆际。我一直安慰自己,他們只是感情好夺饲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布奸汇。 她就那樣靜靜地躺著,像睡著了一般往声。 火紅的嫁衣襯著肌膚如雪擂找。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天浩销,我揣著相機(jī)與錄音贯涎,去河邊找鬼。 笑死慢洋,一個(gè)胖子當(dāng)著我的面吹牛塘雳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播普筹,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼败明,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了太防?” 一聲冷哼從身側(cè)響起妻顶,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后讳嘱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體幔嗦,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年沥潭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了崭添。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡叛氨,死狀恐怖呼渣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寞埠,我是刑警寧澤屁置,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站仁连,受9級(jí)特大地震影響蓝角,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜饭冬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一使鹅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧昌抠,春花似錦患朱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至侨艾,卻和暖如春执虹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背唠梨。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工袋励, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人当叭。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓茬故,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親科展。 傳聞我的和親對(duì)象是個(gè)殘疾皇子均牢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理糠雨,服務(wù)發(fā)現(xiàn)才睹,斷路器,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • 本文出自 Eddy Wiki ,轉(zhuǎn)載請(qǐng)注明出處:http://eddy.wiki/interview-java.h...
    eddy_wiki閱讀 2,110評(píng)論 0 14
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法琅攘,類相關(guān)的語法垮庐,內(nèi)部類的語法,繼承相關(guān)的語法坞琴,異常的語法哨查,線程的語...
    子非魚_t_閱讀 31,622評(píng)論 18 399
  • 夢(mèng)中的你,是我的新娘剧辐,早安
    桐花爛漫閱讀 46評(píng)論 0 0
  • 細(xì)雨霏霏山霧朦寒亥,禾苗青青逐山間。 頭頂蓑苙莊稼人荧关,辛勤耕耘濕襟衫溉奕。 世間富貴如浮云,東風(fēng)勁吹云消散忍啤。 三餐不愁已幸...
    徐一村閱讀 267評(píng)論 0 5