Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 31

0
votes
answers
26 views
+10

如何使用Java腳本

0

改變對象在Azure的功能,格式我有一個藍色的功能,它負責調用「someStoreprocedure」,並通過REQ爲對象。如何使用Java腳本

此相同REQ插入到了蔚藍的收集

在REQ中的數據如下

`{ 
    "intObjectName" : "JCI-AOMS-SWM", 
    "aomsOrderReleaseNbr" : "7232046001", 
    "shipToFaxNbr" : "7325609699", 
    "50records" : [ { 
     "aomsLineNbr" : 1, 
     "planShipPtShipDate" : "20170101", 
     "product" : { 
      "name" : "test-product-train", 
      "productDisplayName" : "test-product-train-display", 
      "sku" : "TRAIN-SKU", 
     }, 
     "licenses" : [ { 
      "productKey" : "productKey-1", 
      "status" : "not activated" 
     }, { 
      "productKey" : "productKey-2", 
      "status" : "not activated" 
     }, 

     { 
      "productKey" : "productKey-3", 
      "status" : "not activated" 
     } ] 
    } ], 
    "isEntitlementInProgress" : true, 
    "id" : "1dcf296e-4e2f-b3f5-8117-92a7879e0a9b" 
}` 

我想將其更改爲類似下面,只有一樣,需要不同的格式發送存儲插入程序。

`{ 
intObjectName: "JCI-AOMS-SWM" 
productKeys: [ 
{ 
      "productKey" : "productKey-1", 
      "status" : "not activated" 
}, 
{ 
      "productKey" : "productKey-1", 
      "status" : "not activated" 
}, 
{ 
      "productKey" : "productKey-1", 
      "status" : "not activated" 
}, 
] 
}` 

我的JS代碼低於,

請讓我知道在代碼中修正。

var DocumentDBClient = require('documentdb').DocumentClient; 
module.exports = function(context, req) { 
    var host = "some"; 
    var masterKey = "some="; 
    var spName = "someStoreprocedure"; 
    var client = ""; 
    client = new DocumentDBClient(host, { 
     masterKey : masterKey 
    }); 

    var insertSPLink = "dbs/" + "admin" + "/colls/" + "productsoutput" 
      + "/sprocs/" + spName; 
    client.executeStoredProcedure(insertSPLink,req,function(err, res) { 
         if (err) { 
          return callback(statusObj); 
         } else { 
          context.log("Success in Insertion"); 
          context.done(); 
          return context; 
         } 
        }); 
}; 
沙发
0
0

例如:

var req = { 
    "intObjectName": "JCI-AOMS-SWM", 
    "aomsOrderReleaseNbr" : "7232046001", 
    "shipToFaxNbr" : "7325609699", 
    "50records" : [ { 
     "aomsLineNbr" : 1, 
     "planShipPtShipDate" : "20170101", 
     "product" : { 
      "name" : "test-product-train", 
      "productDisplayName" : "test-product-train-display", 
      "sku" : "TRAIN-SKU", 
     }, 
     "licenses" : [ { 
      "productKey" : "productKey-1", 
      "status" : "not activated" 
     }, { 
      "productKey" : "productKey-2", 
      "status" : "not activated" 
     }, 

     { 
      "productKey" : "productKey-3", 
      "status" : "not activated" 
     } ] 
    } ], 
    "isEntitlementInProgress" : true, 
    "id" : "1dcf296e-4e2f-b3f5-8117-92a7879e0a9b" 
}; 

var formatedReq = { 
    intObjectName: req["intObjectName"], 
    productKeys: req["50records"][0]["licenses"] 
} 

console.log(formatedReq); 

輸出:

{ 
    intObjectName: 'JCI-AOMS-SWM', 
    productKeys: [ 
     { 
      productKey: 'productKey-1', 
      status: 'not activated' 
     }, 
     { 
      productKey: 'productKey-2', 
      status: 'not activated' 
     }, 
     { 
      productKey: 'productKey-3', 
      status: 'not activated' 
     } 
    ] 
} 
板凳
0
0

我找到了解決我的問題:

下面是完整的代碼: -

var DocumentDBClient = require('documentdb').DocumentClient; 

var newRecordOutputObj; 

module.exports = function(context, req) { 

    context.log('In orderTiggerRecords'); 

    var host = "some"; 
    var masterKey = "some="; 
    var spName = "insertRecords"; 
    var outputCollection = "records"; 
    var databaseName = "some"; 
    var client = ""; 
    client = new DocumentDBClient(host, { 
     masterKey : masterKey 
    }); 
    var storedProc = "dbs/" + databaseName + "/colls/" + outputCollection 
      + "/sprocs/" + spName; 

    newRecordOutputObj = req; 
    context 
      .log("====================Complete Order JSON=============================="); 
    context.log(JSON.stringify(newRecordOutputObj)); 

    var orderData = {}; 

    for (var i = 0; i < newRecordOutputObj[0]['50records'][0].licenses.length; i++) { 
     orderData = orderData 
       + { 
        productkey : newRecordOutputObj[0]['50records'][0].licenses[i].productKey, 
        status : newRecordOutputObj[0]['50records'][0].licenses[i].status 

       }; 
    } 

    context 
      .log("==================== Inserting into Record Collection ===================="); 
    context.log(orderData); 

    client 
      .executeStoredProcedure(
        storedProc, 
        orderData, 
        function(err, res) { 
         if (err) { 
          spName = ""; 
          fetchSPLink = ""; 
          return callback(statusObj); 
         } else { 
          context 
            .log("=========================== Done =============================="); 
          context.res = { 
           status : 200, 
          }; 
          context.done(); 
          return context; 
         } 
        }); 
} 
0
votes
answers
55 views
+10

如何從MVC中的JSON對象中獲取數據

1

我有以下用於存儲所有數據的JSON對象。如何從MVC中的JSON對象中獲取數據

[{"id":1,"CoinValue":"0.01","Count":82,"CoinWeight":76}, 
{"id":2,"CoinValue":"0.02","Count":86,"CoinWeight":18}, 
{"id":3,"CoinValue":"0.05","Count":29,"CoinWeight":42}, 
{"id":4,"CoinValue":"0.1","Count":35,"CoinWeight":90}, 
{"id":5,"CoinValue":"0.2","Count":23,"CoinWeight":3}, 
{"id":30,"CoinValue":"0.5","Count":41,"CoinWeight":36}] 

我想獲取每個記錄的CoinValue和Count以便在谷歌圖表中顯示。目前,我有一個視圖調用Coin控制器中的一個名爲Data的方法來接收數據,但是我無法實現這個功能。

CoinController:

public ActionResult Data() 
    { 
     //Read Json object 
     var fileContents = System.IO.File.ReadAllText(@"H:EasyAsPiMVCEasyAsPiMVCApp_DataMOCK_DATA.json"); 

     //not sure how to properly pass this data to the view 

     return Json(fileContents); 
    } 

的Javascript鑑於處理和顯示數據

<script type="text/javascript"> 
$(document).ready(function() { 
    $.ajax({ 
     type: 'POST', 
     dataType: "Json", 
     contentType: "application/json", 
     url: '@Url.Action("Data", "Coin")', 
     success: function (result) { 
      google.charts.load('current', { 
       'packages': ['corechart'] 
      }); 
      google.charts.setOnLoadCallback(function() { 
       drawChart(result); 
      }); 
     } 
    }); 

    function drawChart(result) { 
     var data = new google.visualization.DataTable(); 
     data.addColumn("string", "CoinValue"); //might have to be changed 
     data.addColumn("number", "Count"); 
     var dataArray = []; 
     $.each(result, function (i, obj) { 
      dataArray.push([obj.CoinValue, obj.Count]); 
     }); 
     data.addRows(dataArray); 

     var piechart_options = { 
      title: 'Coin Tracker Piechart', 
      width: 400, 
      height: 300 
     }; 

     var piechart = new google.visualization.PieChart(document.getElementById('piechart_div')); 
     piechart.draw(data, piechart_options); 

     var barchart_options = { 
      title: 'Coin Tracker barchart', 
      width: 400, 
      height: 300, 
      legend: 'none' 
     }; 

     var barchart = new google.visualization.BarChart(document.getElementById('barchart_div')); 
     barchart.draw(data, barchart_options); 
    } 
}); 
</script> 

我是一個編程小白和一直沒能到現在過了一天算出來的。我做了大量的研究,但我似乎無法得到這個工作。

+0

採用了棱角分明會幫助你從長遠來看,沒有一個答案,但更多的是建議的去做。 – BARNOWL

+0

什麼不適合你?你有什麼錯誤嗎? –

沙发
0
1

ReadAllText方法爲您提供string,這是該文件的內容。您需要將其反序列化爲??對象列表。您的客戶端代碼需要一個對象數組,每個對象都有一個CoinValueCount屬性。所以你需要返回這個json數組。

這裏是你將如何與JSON.NET

[HttpPost] 
public ActionResult Data() 
{ 
    var path = "Path to your JSON file goes here"; 
    var fileContents = System.IO.File.ReadAllText(path); 
    var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Coin>>(fileContents); 
    return Json(list); 
} 
+0

比你,我正在嘗試一些非常類似於此前的東西,但使用了一個不同的模型類,只是舉行了一個沒有工作的硬幣對象列表。非常感謝! – Kalvinl8

123
votes
answers
29 views
+10

How do I add items to an array in jQuery?

var list = [];
$.getJSON("json.js", function(data) {
    $.each(data, function(i, item) {
        console.log(item.text);
        list.push(item.text);
    });
});
console.log(list.length);

list.length always returns 0. I've browsed the JSON in firebug and it's well formed and everything looks fine. I just can't seem to add an item to the array what am I missing?

up vote 117 down vote accepted favorite
沙发
+1170
+50

由於 $。getJSON 是異步的,我認為您的 console.log(list.length); 代碼在填充數組之前觸發。要更正此問題,請將 console.log 語句放入回調中:

  var list = new Array(); $ .getJSON(“json.js”,function(data){$ .each(data,function(i,item){console.log(item.text); list.push(item.text);}); console .log(list.length);});  
     
			
        
+30

您正在發出異步的ajax請求,因此您的控制台日誌列表長度發生在ajax請求完成之前。

實現您想要的唯一方法是將ajax調用更改為同步。您可以通過使用.ajax並傳入asynch:false來執行此操作,但不建議這樣做,因為它會在調用返回之前鎖定UI,如果它無法返回,則用戶必須從瀏覽器中崩潰。

+30

希望這會對??你有幫助..

  var list = []; $(document).ready(function(){$('#test')。click(function(){var oRows = $('#MainContent_Table1 tr')。length; $('#MainContent_Table1 tr')。each( function(index){list.push(this.cells [0] .innerHTML);});});});  
     
			
        
0
votes
answers
18 views
+10

與java中的字符串getString有什麼不同?

0

我有這樣的可變JSON_STRING[{"person":"123abc"}]一些JSON我嘗試解析JSON字符串這樣與java中的字符串getString有什麼不同?

JSONObject person = (new JSONObject(JSON_STRING)); 
    String name = person.getString("person"); 
    String test= "123abc"; 
    if(name == test){ 
     System.out.print("Success"); 
    }else{ 
     System.out.print("Fail"); 
    } 

我做一些簡單的邏輯與的if else但我有一些問題可變nametest不一樣的,因爲結果Fail。我不知道爲什麼內容變量nametest被認爲不相同。如果有人有一些解決方案,請幫助。

感謝

+0

你知道 「==」 和.equals之間的差異()在java? – Pratyay

+1

實際上,請比較字符串與'equals' – HatsuPointerKun

沙发
0
2

這裏:

if(name == test){ 

你比較沒有參考價值。用途:

if(name.equals(test)){ 
+0

,他確實比較了字符串。我認爲你的意思是:「你比較參考,而不是數值」 – Stultuske

+0

是的,我改變了它 – marcinj

+0

感謝您的簡單解釋和它的工作 – Nugka

板凳
0
1

if(name == test){應該if(name.equals(test)){

==用於比較的參考,並equals使用比較值

0
votes
answers
31 views
+10

我需要發送這個變量在PHP

-1

我需要創建一個函數接收一個變量並將其作爲json發送。我預計JSON輸出是:我需要發送這個變量在PHP

{ "item": [ 
    { 
     "a": "string", 
     "b": "string", 
     "c": 0 
    }], 
    "country": 0 
} 

這是我在PHP函數:

$postData['item'] = 
array(
    'a' => "12345", 
    'b' => "98765", 
    'c' => 0000, 
); 
$postData['country']= 1; 

這產生:

<pre> 
array(2) { 
    ['item'] => array(1) { 
     ['sn'] => string(13) '9597/08639650' 
    } 
    ['country'] => int(717808) 
} 
</pre> 

我也越來越其中指出的錯誤: ["item is not of a type(s) array"]

我在這裏做錯了什麼?

Regards

沙发
0
0

如果沒有更多信息,我無法複製您的問題。這裏是你的代碼working repl.it。它顯示沒有問題了預期的結果:

<pre>array(2) { 
    ["item"]=> 
     array(3) { 
      ["a"]=> 
      string(5) "12345" 
      ["b"]=> 
      string(5) "98765" 
      ["c"]=> 
      int(0) 
     } 
    ["country"]=> 
     int(1) 
} 
</pre> 

而且json_encode($postData)

string(52) "{"item":{"a":"12345","b":"98765","c":0},"country":1}" 

如果你不能得到這個工作,請發表關於什麼的$postData的實例,當你之間發生的更多信息打印它。

102
votes
answers
22 views
+10

JSON.stringify without quotes on properties?

I'm using a service which uses incorrect JSON format (no double quotes around properties). So I need to send

{ name: "John Smith" } instead of { "name": "John Smith" }

This format cannot be changed as this is not my service.

Anyone know of a stringify routing to format an JavaScript object like above?

沙发
+790
  var json ='{“name”:“John Smith”}'; //假設你有這個json = json.replace(/“([^(”)“] +)”:/ g,“$ 1:”); //這將刪除所有引號json; //'{name:“John Smith”}'  

正則表達式將刪除所有引號,最重要的是,它不需要庫!

極端情況:

  var json ='{“name”:“J ”:ohn Smith“}'json.replace(/ ”/ g “uFFFF”); // U + FFFF json = json.replace(/“([^”] +)“:/ g,”$ 1:“)。replace(/ uFFFF / g,”“”); //'{name:“J”:ohn Smith“}' < //根據JSON規範實現遞歸對象序列化//但沒有引號圍繞鍵。let props = Object .keys(obj_from_json).map(key =&gt;`$ {key}:$ {stringify(obj_from_json [key])}`)。join(“,”); return` {$ {props}}`; }   

示例: https://jsfiddle.net/DerekL/mssybp3k/

請注意,代碼是用ES6編寫的,可能需要對舊瀏覽器進行轉換或手動翻譯。

第一個很好,不是嗎?var x = eval(str); - 魯迪於2012年6月27日19:24

-1也不是我,但你必須仔細閱讀這個問題。OP需要將對象編碼為(損壞的)json,而不是解析/評估它。 - Salman A 12月27日在19:28

@Derek這種方法不可靠。例如,取這個輸入:{“foo”:“e”:bar“}(有效的JSON)變為{foo:e:bar”}(...)! - Rob W Jun於2012年6月27日19:40

@Derek / “/可以簡化為/ ”/。不要忘記添加全局標誌,/ “/ g,否則它將在多個字符串中斷”。至於隨機字符,在編輯器阻塞的情況下,永遠不要使用文字U + FFFF,而是使用轉義序列。恢復的正則表達式將變為/ uFFFF / g。 - Rob W Jun 12年12月27日19:59

@endriu在這種情況下,只需添加一個額外的空值檢查。 - Derek朕會功夫於18年7月12日13:00

地板
+50

您可以查看 json2.js的源代碼 由定義JSON格式的人創建的解析器。查找 quote 函數調用:這些函數用引號括起來。鍵引用 326 338

之後不要包含庫修改。而是僅採用相關的( stringify )部分,或者至少替換 JSON < / code>與其他東西,例如。 FAKEJSON

例如,一個對象 FAKEJSON ,它只定義 stringify http://jsfiddle.net/PYudw/

為什麼在純JavaScript中可以使用額外的庫? - Derek朕會功夫12月27日在19:35

這是一個好主意。我會分叉repo,刪除引號,並將JSON對象重命名為像FAILJSON這樣的滑稽的東西,以明確你沒有使用實際的JSON對像或實際的JSON。 - RichardTowers 2012年6月27日19:37

@Derek圖書館不應整體包含在內。僅獲取JSON.stringify部分,並刪除引號。由於庫是由定義JSON的人創建的,因此我們可以非常確定結果是非常有效的JSON。 - Rob W Jun 12年12月27日19:39

@Rob W - 我明白了。 - Derek朕會功夫2012年6月27日19:40

看起來這是最好的方法。 - Derek朕會功夫12年6月27日20:13

4楼
+40

找到一個好的NPM包裝來做到這一點:

https: //www.npmjs.com/package/stringify-object

  const stringify = require('stringify-object')let prettyOutput = stringify(json);   

效果很好。

5楼
+30

嘗試使用帶有JSONP的servive,我猜他們在使用這種格式時會提供它。

否則,請向他們提供詳細的錯誤報告,其中包括一個很好的論證,為什麼它應該符合標準。除了消除源問題之外的任何其他解決方案都不是真正的解決方案。

快速解決方法可能是在解析之前將字符串通過正則表達式進行管道傳輸:

  var obj = JSON.parse(str.replace(/({|,)s *(。+?)s *:/ g,'$ 1“$ 2”:'));   

或者您嘗試調整現有的javascript JSON解析器(例如這個)如果你想要一個更複雜的語法解析。

6楼
+10

你的繼承語法應該很容易被YAML吃掉,YAML是JSON的超集。

嘗試使用JavaScript YAML解析器和轉儲器: http://nodeca.github.com/js-yaml/

7楼
0

CSVJSON的JSON Beautifier 可以選擇刪除鍵上的引號。如果您只想要代碼,可以從GitHub倉庫中復制它。修改道格拉斯克羅克福德的JSON2 以添加支持。

剛剛點擊了csvjson.com/json_beautifier並得到了一個與我預期不同的頁面...被AnoaGhost攻擊 - RedactedProfile 2016年12月30日8:29

現在清理乾淨了。抱歉給你帶來不便。 - Martin Drapeau於2016年12月31日11:19

8楼
0
  var jsonString = JSON.stringify(YOUROBJECT); var jsonObject = JSON.parse(jsonString);  
     
			
        

密切相關:如何在本地存儲(或其他地方)中保留ES6地圖? - Bergi 2015年7月2日20:06

9楼
0

@Derek朕會功夫感謝分享這個方法,我想分享我的代碼,它也支持對一組對象進行字符串化。

  export const stringifyObjectWithNoQuotesOnKeys =(obj_from_json)= &GT; {//如果是數組,我們將對所有對象進行字符串化。if(Array.isArray(obj_from_json)){return` [$ {obj_from_json .map(obj =&gt;`$ {stringifyObjectWithNoQuotesOnKeys(obj)}`)。join(“,”)}]`; } //不是對象,使用本機函數stringify if(typeof obj_from_json!==“object”){return JSON.stringify(obj_from_json); //根據JSON規範實現遞歸對象序列化//但沒有引號圍繞鍵。return` {$ {Object .keys(obj_from_json).map(key =&gt;`$ {key}:$ {stringifyObjectWithNoQuotesOnKeys(obj_from_json [key])}`)。join(“,”)}}`; };  
     
			
        

您也應該將JSON.stringify用於instanceof Date。如果obj_from_json為null,也返回'null'。 - 遠在德米特里5月8日9:53

134
votes
answers
15 views
+10

How to parse JSON in Kotlin?

I'm receiving a quite deep JSON object string from a service which I must parse to a JSON object and then map it to classes.

How can I transform a JSON string to object in Kotlin?

After that the mapping to the respective classes, I was using StdDeserializer from Jackson. The problem arises at the moment the object had properties that also had to be deserialized into classes. I was not able to get the object mapper, at least I didn't know how, inside another deserializer.

Thanks in advance for any help. Preferably, natively, I'm trying to reduce the number of dependencies I need so if the answer is only for JSON manipulation and parsing it'd be enough.

up vote 33 down vote accepted favorite
沙发
+330
+50

您可以使用此庫 https://github.com/cbeust/klaxon

Klaxon是一個輕量級的庫,用於在Kotlin中解析JSON。

作者在這裡,如果您有任何問題/建議,請隨時給我發電子郵件。 - Cedric Beust於2017年1月30日17:59

我需要導入哪些java庫才能獲得正確的Parser?我試過org.json。*,但我必須在Gradle設置中遺漏一些東西。我認為Klaxon文檔假設太多(比如用戶知道Java庫)。 - Makis 2010年10月28日13:44

@CedricBeust你試過用sqlite來處理類對象嗎?這裡有什麼推薦做法嗎 - Raju yourPepe 17年11月16日凌晨2點50分

+410

毫無疑問,在Kotlin中解析的未來將與kotlinx.serialization有關。它是Kotlin圖書館的一部分。目前仍處於孵化階段。

https:// github。 com / Kotlin / kotlinx.serialization

  import kotlinx.serialization。* import kotlinx.serialization.json.JSON @Serializable data class MyModel(val a:Int,@ Option val b :String =“42”)fun main(args:Array&lt; String&gt;){//序列化對象val jsonData = JSON.stringify(MyModel.serializer(),MyModel(42))println(jsonData)// {“a” :42,“b”:“42”} //序列化列表val jsonList = JSON.stringify(MyModel。
     
			
        

這應該是公認的答案 - Forke Jun 7 at 9:14

+170

沒有外部庫

解析這個:

  val jsonString =“”“{”type“:”Foo“,”data“:[{”id “:1,”title“:”Hello“},{”id“:2,”title“:”World“}]}”“”  

使用這些類:

  import org.json.JSONObject class Response(json:String):JSONObject(json){val type:String?= this.optString(“type”)val data = this.optJSONArray(“data”)?。try {0.until(it.length())。map {i  - &gt; 它。optJSONObject(i)}} //返回一個JSONObject數組?.map {Foo(it.toString())} //將數組的每個JSONObject轉換為Foo} class Foo(json:String):JSONObject(json){ val id = this.optInt(“id”)val title:String?= this.optString(“title”)}   

用法:

  val foos = Response(jsonString) 
     
			
        

+150

不確定這是否是您需要的,但這就是我的方法。

使用import org.json.JSONObject:

  val jsonObj = JSONObject(json) .substring(json.indexOf(“{”),json.lastIndexOf(“}”)+ 1))val foodJson = jsonObj.getJSONArray(“Foods”)for(i in 0..foodJson !!。length() - 1){val categories = FoodCategoryObject()val name = foodJson.getJSONObject(i).getString(“FoodName”)categories.name = name}   

以下是json的示例:{ “食物”:{“FoodName”:“蘋果”,“重量”:“110”}}

什麼是依賴? - LuísSoares於2017年7月22日10:08

@LuísSoares這是我用的mvnrepository.com/artifact/org.json/json - markB 17年7月25日在5:01

+130

您可以使用 Gson

示例

第1步

添加編譯

 編譯'com.google.code.gson:gson:2.8.2'  

第2步

將json轉換為 Kotlin Bean (使用 JsonToKotlinClass

喜歡這個

Json 數據

  {“timestamp”:“2018-02-13 15:45 :45“,”code“:”OK“,”message“:”用戶信息“,”路徑“:”/ user / info“,“data”:{“userId”:8,“avatar”:“/ uploads / image / 180115 / 1516009286213053126.jpeg”,“nickname”:“”,“gender”:0,“birthday”:1525968000000,“age” :0,“省”:“”,“city”:“”,“district”:“”,“workStatus”:“Student”,“userType”:0},“errorDetail”:null}  < / pre> 

Kotlin Bean

  class MineUserEntity {data class MineUserInfo(val timestamp:String,val code:String,val message:String,val path:字符串,val數據:數據,val errorDetail:任何)數據類數據(val userId:Int,val avatar:String,val nickname:String,val gender:Int,val birthday:long,val age:Int,val province:String,val city:String,val district:String ,val workStatus:String,val userType:Int)}   

第3步

使用 Gson

  var gson = Gson()var mMineUserEntity = gson?。fromJson(response,MineUserEntity.MineUserInfo :: class.java) val district:String,val workStatus:String,val userType:Int)}   

Step 3

使用 Gson

  var gson = Gson()var mMineUserEntity = gson?。fromJson(response,MineUserEntity.MineUserInfo :: class.java) val district:String,val workStatus:String,val userType:Int)}   

Step 3

使用 Gson

  var gson = Gson()var mMineUserEntity = gson?。fromJson(response,MineUserEntity.MineUserInfo :: class.java) 
     
			
        

這給了我java.lang.IllegalStateException:期望一個字符串,但在第1行第700列路徑是BEGIN_OBJECT - Srishti Roy 12年10月10日在8:33

您應該先檢查您的退貨數據。@ SrishtiRoy - KeLiuyue 18年12月10日9:22

它有效,但如果我的json響應像“類別”:[“推薦”],那麼? - Srishti Roy 18年10月10日在13:56

@SrishtiRoy的響應是非法的JSON數據。合法的JSON數據以{或[ - KeLiuyue Dec 11 '18 at 1:29開始

該插件目前不適用於嵌套的JSON對象。 - 湯姆1月21日18:49

+90

我個人使用Jackson模塊進行Kotlin,你可以在這裡找到: jackson-module-kotlin

  implementation“com.fasterxml.jackson.module:jackson-module-kotlin:$ version”  

舉個例子,這裡是要解析的代碼流放路徑技能樹的JSON非常重(格式化時為84k行):

Kotlin代碼:

  package util import com.fasterxml.jackson.databind。 DeserializationFeature import com.fasterxml.jackson.module.kotlin。* import java.io.File數據類SkillTreeData(val characterData:Map&lt; String,CharacterData&gt;,val groups:Map&lt; String,Group&gt;,val root:Root,val nodes:List&lt; Node&gt;,val extraImages:Map&lt; String,ExtraImage&gt;,val min_x:Double,val min_y:Double,val max_x:Double,val max_y:Double,val assets:Map&lt; String, Map&lt; String,String&gt;&gt;,val常量:常量,val imageRoot:String,val skillSprites:SkillSprites,val imageZoomLevels:List&lt; Int&gt; )數據類CharacterData(val base_str:Int,val base_dex:Int,val base_int:Int)數據類組(val x:Double,val y:Double,val oo:Map&lt; String,Boolean&gt;?,val n:List&lt; Int&gt;)數據類Root(val g:Int,val o:Int,val oidx:Int,val sa:Int,val da:Int,val ia:Int,val out:List&lt; Int&gt;
     
			
        

不同於Klaxon(當我嘗試時它有一個錯誤),傑克遜實際上工作:) - redsk 12年11月11日在17:49

此外,您可以使用intellij中的JSON to Kotlin數據類插件為您生成數據類。 - Brooks DuBois 4月2日15:52

+30

首先。

您可以將JSON用於Android Studio中的Kotlin Data類轉換器插件,以便將JSON映射到POJO類(kotlin數據類)。這個插件將根據JSON註釋你的Kotlin數據類。

然後你可以使用GSON轉換器將JSON轉換為Kotlin。

按照這個完整的教程: Kotlin Android JSON解析教程

如果你想手動解析json。

  val ** sampleJson ** =“”“[{”userId“:1,”id“:1,”title“:”sunt aut facere repelat provident occaecati excepturi optio reprehenderit“, “
     
			
        
+20

要將JSON轉換為Kotlin,請使用 http://www.json2kotlin.com/

您也可以使用Android Studio插件。文件&gt; 設置,在左側樹中選擇插件,按“瀏覽存儲庫...”,搜索“ JsonToKotlinClass ”,選擇它並單擊綠色按鈕“安裝”。

AS重新啟動後即可使用它。您可以使用 File&gt;創建一個類。新&gt; JSON到Kotlin類(JsonToKotlinClass)

+10

http://www.jsonschema2pojo.org/ 您好,您可以使用本網站將json轉換為pojo。
control + Alt + shift + k

之後你可以手動將該模型類轉換為kotlin模型類。借助上述快捷方式。

它將轉換為Java。 - CoolMind 18年12月26日12:23

-10

有點晚了,但無論如何。

如果您更喜歡將JSON解析為JavaScript,就像使用Kotlin語義的構造一樣,我推薦 JSONKraken ,其中我是作者。

關於這個問題的建議和意見很多!

-30
string()val json_contact:JSONObject = JSONObject(str_response)var jsonarray_contacts:JSONArray = json_contact.getJSONArray(“contacts”)var i:Int = 0 var size:Int = jsonarray_contacts.length()al_details = ArrayList(); for(i in 0 .. size-1){var json_objectdetail:JSONObject = jsonarray_contacts.getJSONObject(i)var model:Model = Model(); model.id = json_objectdetail.getString(“id”)model.name = json_objectdetail.getString(“name”)model.email = json_objectdetail.getString(“email”)model.address = json_objectdetail.getString(“address”)model。 gender = json_objectdetail.getString(“gender”)al_details。

他沒有要求一個http客戶端,只是為了一個json解析器... - Willi Mentzel 18年1月2日在10:18

0
votes
answers
24 views
+10

Laravel雄辯JSON領域,選擇屬性產生額外的雙引號

3

此代碼:Laravel雄辯JSON領域,選擇屬性產生額外的雙引號

$translation = Translation::where('language_id', 2) 
      ->whereNotNull('data->navigation_login') 
      ->select('data->navigation_login as navigation_login') 
      ->first() 
      ->toArray(); 
dd($translation); 

產生這樣的結果: array(1) {["navigation_login"]=> string(7) ""Login"" }

的問題是多餘的雙引號角落找尋登錄字符串:""Login""

我該如何消除這種情況?

如果我運行aboe代碼而不選擇:

$translation = Translation::where('language_id', 2) 
      ->whereNotNull('data->navigation_login') 
      ->first() 
      ->toArray(); 
dd($translation); 

沒有雙引號:

["data"]=> 
    array(3) { 
    ["navigation_login"]=> 
    string(5) "Login" 
    ["navigation_order"]=> 
    string(5) "Order" 
    ["navigation_registration"]=> 
    string(7) "Sign up" 
    } 

這裏是模型細節:

... 
class Translation extends Model { 

    protected $casts = [ 
     'data' => 'array', 
    ]; 
... 

這裏是架構細節:

... 
$table->json('data')->nullable(); 
... 
+0

燦你把點而不是 - >在data-> navigation_login這一行? – DrStein

+0

Translation模型的表是否真的叫做'data'?你能否在表格模式中包含一些信息? –

+0

@DrStein' - > select('data.navigation_login as navigation_login')'點不起作用。 **未知列'data.navigation_login'** – robcaa

沙发
0
0

最後的解決方案:

的MySQL 5.7.13,後來

Using the unquoting extraction operator - >> ->select('data->>navigation_login as navigation_login')

或更舊版本的MySQL 5.7 < MYSQL < 5.7.13 ->select(DB::raw("JSON_UNQUOTE(JSON_EXTRACT(data, '$.navigation_login')) as navigation_login"))

0
votes
answers
14 views
+10

什麼數據格式是緩衝區?

0

我正在使用Nodejs創建一個應用程序。圖像在SQL中以blob存儲。從SQL中獲取圖像後,我檢查了它的格式。圖像的JSON響應如下所示。什麼數據格式是緩衝區?

Response after fetching the image

我將數據發送到前端後,圖像顯示在此格式

JSON Response in the front end

由於它顯示緩衝區,我感到困惑的圖像格式是什麼。圖像的格式是什麼?

+1

'緩衝區'基本上只是一個二進制的blob。您將不得不評估該二進制數據以確定它是什麼圖像格式(或使用第三方模塊執行相同的操作) – Joe

+0

@Joe謝謝!所以,如果我要在UI上顯示它,我應該將其轉換爲什麼格式? – APJ

沙发
0
1

格式是JPEG(JFIF)。如果你看一看

(255, 216, 255, 224, 0, 16, 74, 70, 73, 70, 0, 1, 1, 1, 0, 200) 

或等價:

FF D8 FF E0 00 10 4A 46  .......J 
49 46 00 01 01 01 00 C8  FIF..... 

特別4A 46 49 46 00,這是標識符JFIF

FF D8   # Start of Image 

FF E0   # APP0 marker 
00 10   # length of segment: 16 bytes 
4A 46 49 46 00 # "JFIF" 
01 01   # version:   1.01 
01    # pixel density unit: pixels per inch 
00 CB   # Xdensity:   200 ppi 
... 
0
votes
answers
19 views
+10

在Python中刪除AJAX加載的網站

1

我已經使用Selenium在以下網站下載了https://www.eex-transparency.com/homepage/power/czech-republic/production/availability/non-usability/non-usability。我正在刮所有的表格數據。它運行良好,但運行該腳本需要相當長的時間。因此,我開始尋找替代方案,並在這裏使用API??向StackOverflow發送了請求到服務器的幾個主題,但經過數小時的嘗試和搜索後,我放棄了,因爲我沒有得到幾件事:在Python中刪除AJAX加載的網站

  • 如何反向工程API發送正確的請求?
  • 我應該使用哪個url鏈接?

這是我想出了:

import json 
import requests 

url = "https://www.eex-transparency.com/ajax/en/navigation/ajaxGetNavi/12" 

data = { 
    "id": "16", 
    "title": "Czech Republic", 
    "url": "https:\/\/www.eex-transparency.com\/homepage\/power\/czech-republic", 
    "class": "country", 
    "description": "", 
    "children": [ 
     { 
     "id": "649", 
     "title": "Production", 
     "url": False, 
     "class": "", 
     "description": "", 
     "children": [ 
      { 
      "id": "650", 
      "title": "Capacity", 
      "url": False, 
      "class": "", 
      "description": "", 
      "children": [ 
       { 
       "id": "651", 
       "title": "Installed Capacity", 
       "url": "https:\/\/www.eex-transparency.com\/homepage\/power\/czech-republic\/production\/capacity\/installed-capacity", 
       "class": "", 
       "description": "" 
       } 
      ] 
      } 
     ] 
     } 
     ]  
    } 


response = requests.get(url, data=data) 
file = response.json() 

在一般情況下,也許有人可以解釋,我應該以什麼措施刮除後網頁,我特別感興趣的是如何找到正確的來自Chrome( - > Inspect - > Network - > XHR)的信息以及如何從後面的信息生成data變量(即我輸入requests)?

沙发
0
0

您可以使用Scrapy

Scrapy,快速的高級別網頁抓取的Python &刮框架。

https://github.com/scrapy/scrapy/

+0

這是怎麼想的?你沒有提供任何細節.. – Aertonas