Die folgende Strategie verwendet eine for...in
Schleife um das Objekt zu durchqueren, um alle Eigenschaftswerte mit einer Kette von Sternchen ersetzt.
const myObject = {"Name": "value1", "Phoneno": "545454545445"};
const mask = obj => {
const masked = {};
for (let key in obj) masked[key] = "*****";
return masked;
};
console.log("original:", myObject);
console.log("masked:", mask(myObject));
Wenn Sie die maskierten Werte wollen Sternchen, aber die gleiche Länge wie das Original (anstelle einer konstanten Länge), ändern Sie die for...in
Schleife auf die folgenden sein: for (let key in obj) masked[key] = "*".repeat(obj[key].length);
.
UPDATE: Maskieren verschachtelte Objekte (und sogar Arrays)
In Ihre Kommentare, fragte man über Werte in verschachtelten Objekten zu maskieren.
Um ein verschachteltes Objekt oder sogar eine Kombination von Objekten und/oder Arrays in einer verschachtelten Anordnung zu verarbeiten, benötigen Sie wahrscheinlich eine Rekursion. Kurz gesagt, wenn der aktuelle Wert ein primitiver Wert ist (zB eine Zeichenkette, eine Zahl, ein Boolescher Wert usw.), dann ersetze ihn durch die Dummy-Zeichenkette, aber wenn der aktuelle Wert ein Objekt selbst (oder ein Array) ist, dann re -Senden Sie diesen Wert von Anfang an in den Maskierungsprozess zurück.
Das folgende Beispiel zeigt eine mögliche Vorgehensweise. Ich habe jQuery verwendet, um festzustellen, ob ein Wert ein einfaches Objekt oder ein Array ist. In diesem Beispiel enden Objekteigenschaftsnamen mit "A", "B", "C" usw. Arrays werden in Objekte umgewandelt, z. ["foo", "bar"]
würde in {"0": "*****", "1": "*****"}
konvertiert werden.
const myObject = {propA: "a", propB: {propBA: "ba", propBB: "bb"}, propC: ["c0", "c1"], propD: {propDA: "da", propDB: {propDBA: "dba", propDBB: "dbb"}, propDC: ["dc0", "dc1"]}, propE: ["e0", {propE1A: "e1a", propE1B: "e1b"}, ["e20", "e21"]]};
const mask = objOrArr => {
const masked = {};
for (let key in objOrArr) {
const val = objOrArr[key];
if ($.isPlainObject(val) || $.isArray(val)) {
masked[key] = mask(val);
} else {
masked[key] = "*****";
}
}
return masked;
};
console.log("original... ", myObject);
console.log("masked... ", mask(myObject));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Danke, es funktioniert. aber was ist, wenn JSON wie folgt ist: – tiya
Wie unten? Unter was? Ich verstehe nicht –