JSON zu BSON
Huhu,
ich hoffe das meine Frage hier halbwegs richtig ist.
Zur Aufgabe steht die Konfiguration eines "WebdynEasy W M-Bus 868MHz" mittels .bson Dateien.
Die entsprechende Konfiguration im .json Format habe ich soweit erstellt, aber wie bekomme ich jetzt aus einer .json eine .bson Datei?
Da muss es doch irgendwo ein entsprechendes Tool geben, jedoch finde ich einfach nichts ...
Eventuell hat ja von Euch jemand eine Idee.
LG Michael
ich hoffe das meine Frage hier halbwegs richtig ist.
Zur Aufgabe steht die Konfiguration eines "WebdynEasy W M-Bus 868MHz" mittels .bson Dateien.
Die entsprechende Konfiguration im .json Format habe ich soweit erstellt, aber wie bekomme ich jetzt aus einer .json eine .bson Datei?
Da muss es doch irgendwo ein entsprechendes Tool geben, jedoch finde ich einfach nichts ...
Eventuell hat ja von Euch jemand eine Idee.
LG Michael
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1987834861
Url: https://administrator.de/contentid/1987834861
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
9 Kommentare
Neuester Kommentar
jedoch finde ich einfach nichts ...
Wonach hast du gesucht, wie man Birnen zu Äpfeln macht 🤪?Such dir was aus
https://bsonspec.org/implementations.html
https://onlinejsontools.com/convert-json-to-bson
https://github.com/idleberg/atom-bson-converter
https://atom.io/packages/bson-converter
Eine Datei auswählen bekommst du nicht hin ??? Dann ist Hopfen und Malz verloren 😉.
Zitat von @mhunst:
Schon selber probiert? Bei mir gibt es keinen Browser, der auch nur den Hauch einer Reaktion bei der Bedienung des Formulars zeigt
Schon selber probiert? Bei mir gibt es keinen Browser, der auch nur den Hauch einer Reaktion bei der Bedienung des Formulars zeigt
Jup, geht hier problemlos. Aber oben findest du ja hunderte Datenschutz freundlichere Alternativen, verstehe ehrlich gesagt dein Problem nicht ... Bist du einfach nur zu faul oder was hindert dich daran diese zu nutzen?! Hinsetzen lesen, nötigen Background anlesen und machen...as simple as that.
Von selbst backen sich deine Brötchen auch nicht.
Servus Michael,
mit folgendem Powershell-Skript (zur Info das Skript lädt eine DLL von nuget.org für den Konvertierungsvorgang ins Skriptverzeichnis)
so aus einer CMD heraus so ausgeführt (Quell- und Zielpfade anpassen)
oder direkt in einer Powershell-Konsole so ausgeführt
bekommst du dein bson File aus einer json .
Habe dir auch noch eine kleine Konsolenanwendung (.NET 4.5) mit c# geschrieben, die macht es noch einfacher in der Anwendung:
json_to_bson_1987834861.zip
Benutzung fällt auf der Konsole dann so aus
Grüße Uwe
mit folgendem Powershell-Skript (zur Info das Skript lädt eine DLL von nuget.org für den Konvertierungsvorgang ins Skriptverzeichnis)
param(
[parameter(mandatory=$true)]$json,
[parameter(mandatory=$true)]$bson
)
function ConvertJsonTo-Bson {
param(
[string]$json
)
function Load-NugetAssembly {
[CmdletBinding()]
param(
[string]$url,
[string]$name,
[string]$zipinternalpath,
[switch]$downloadonly
)
# Accept all TLS protocols
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::GetNames([System.Net.SecurityProtocolType])
if($psscriptroot -ne ''){
$localpath = join-path $psscriptroot $name
}else{
$localpath = join-path $env:TEMP $name
}
$tmp = "$env:TEMP\$([IO.Path]::GetRandomFileName())"
$zip = $null
try{
if(!(Test-Path $localpath)){
Add-Type -A System.IO.Compression.FileSystem
write-host "Downloading and extracting required library '$name' ... " -F Green -NoNewline
(New-Object System.Net.WebClient).DownloadFile($url, $tmp)
$zip = [System.IO.Compression.ZipFile]::OpenRead($tmp)
$zip.Entries | ?{$_.Fullname -eq $zipinternalpath} | %{
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($_,$localpath)
}
Unblock-File -Path $localpath
write-host "OK" -F Green
}
if(!$downloadonly.IsPresent){
Add-Type -Path $localpath -EA Stop
}
}catch{
throw "Error: $($_.Exception.Message)"
}finally{
if ($zip){$zip.Dispose()}
if(Test-Path $tmp){del $tmp -Force -EA 0}
}
}
Load-NugetAssembly 'https://www.nuget.org/api/v2/package/Newtonsoft.Json/13.0.1' -name 'Newtonsoft.Json.dll' -zipinternalpath 'lib/net45/Newtonsoft.Json.dll' -EA Stop
$reader = $null;$ms = $null;$bsonwriter = $null
try{
$reader = [Newtonsoft.Json.JsonTextReader]::new([System.IO.StringReader]::new($json))
$data = [Newtonsoft.Json.JsonSerializer]::new().Deserialize($reader)
$ms = [System.IO.MemoryStream]::new()
$bsonwriter = [Newtonsoft.Json.Bson.BsonWriter]::new($ms)
[Newtonsoft.Json.JsonSerializer]::new().Serialize($bsonwriter,$data)
$ms.ToArray()
}catch{
write-host $_.Exception.Message -F Red
}finally{
if ($bsonwriter){$bsonwriter.Close();$bsonwriter.Dispose()}
if ($ms){$ms.Close();$ms.Dispose()}
if ($reader){$reader.Close();$reader.Dispose()}
}
}
# convert to bson file
[io.File]::WriteAllBytes($bson,(ConvertJsonTo-Bson -json (gc $json -raw)))
powershell -ep bypass -file .\script.ps1 -json "D:\Quelle\test.json" -bson "D:\Ziel\test.bson"
.\script.ps1 -json "D:\Quelle\test.json" -bson "D:\Ziel\test.bson"
Habe dir auch noch eine kleine Konsolenanwendung (.NET 4.5) mit c# geschrieben, die macht es noch einfacher in der Anwendung:
json_to_bson_1987834861.zip
Benutzung fällt auf der Konsole dann so aus
json_to_bson.exe -json [JSON Source-Path] -bson [BSON Destination-Path]
Grüße Uwe